微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决webservice的跨域请求问题

客户端使用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"             );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐