加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

解决webservice的跨域请求问题

发布时间:2020-12-16 22:44:33 所属栏目:安全 来源:网络整理
导读:客户端使用HttpURLConnection发送webservice请求 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import javax.servlet.

客户端使用HttpURLConnection发送webservice请求

import java.io.IOException;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HttpURLConnectionServlet extends HttpServlet {
?? ?private static final long serialVersionUID = 1L;
?? ?
?? ?protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
?? ??? ?String name = request.getParameter("name");
?? ??? ?System.out.println("doPost "+name);
?? ??? ?
?? ??? ?String data = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><ns2:sayHello xmlns:ns2='http://ws.day01_ws.atguigu.com/'><arg0>"+name+"</arg0></ns2:sayHello></soap:Body></soap:Envelope>";
?? ??? ?URL url = new URL("http://192.168.10.165:8888/day01_ws/datatypews");
?? ??? ?
?? ??? ?HttpURLConnection connection = (HttpURLConnection) url.openConnection();
?? ??? ?
?? ??? ?connection.setRequestMethod("POST");
?? ??? ?connection.setDoOutput(true);
?? ??? ?connection.setDoInput(true);
?? ??? ?connection.setRequestProperty("Content-Type","text/xml;charset=utf-8");
?? ??? ?
?? ??? ?OutputStream os = connection.getOutputStream();
?? ??? ?os.write(data.getBytes("utf-8"));
?? ??? ?
?? ??? ?int responseCode = connection.getResponseCode();
?? ??? ?if(responseCode==200) {
?? ??? ??? ?InputStream is = connection.getInputStream();//String xml
?? ??? ??? ?System.out.println("return "+is.available());
?? ??? ??? ?
?? ??? ??? ?response.setContentType("text/xml;charset=utf-8");
?? ??? ??? ?ServletOutputStream outputStream = response.getOutputStream();
?? ??? ??? ?
?? ??? ??? ?byte[] buffer = new byte[1024];
?? ??? ??? ?int len = 0;
?? ??? ??? ?while((len=is.read(buffer))>0) {
?? ??? ??? ??? ?outputStream.write(buffer,len);
?? ??? ??? ?}
?? ??? ??? ?outputStream.flush();
?? ??? ?}
?? ?}

}

页面js调用:

???????? $.post( ?? ??? ??? ??? ?"HttpURLConnectionServlet",?? ??? ??? ??? ?"name="+name,?? ??? ??? ??? ?function(msg) { ?? ??? ??? ??? ??? ?//alert(msg); ?? ??? ??? ??? ??? ?var $Result = $(msg); ?? ??? ??? ??? ??? ?var value = $Result.find("return").text(); ?? ??? ??? ??? ??? ?alert(value); ?? ??? ??? ??? ?},?? ??? ??? ??? ?"xml" ?? ??? ??? ?);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读