解决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" ?? ??? ??? ?); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |