zoukankan      html  css  js  c++  java
  • 使用ajax和urlconnection方式调用webservice服务

    <html>
        <head>
            <title>使用ajax方式调用webservice服务</title>
            <script>
                var xhr = new XMLHttpRequest();
                function sendAjax(){
                    var url = "http://192.168.13.66:8080/hello";//webservice服务的地址
                    var requestBody = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ' + 'xmlns:q0="http://service.demo.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+
                    '<soapenv:Body><q0:sayHi> <arg0>xiaoming</arg0></q0:sayHi></soapenv:Body></soapenv:Envelope>';//构造请求体,符合soap协议规范
    
                    //打开连接
                    xhr.open("POST",url,true);
    
                    //重新设置请求头
                    xhr.setRequestHeader("content-type","text/xml;charset=UTF-8");
    
                    //指定回调函数
                    xhr.onreadystatechange = _back;
    
                    //发送请求
                    xhr.send(requestBody);
                }
    
                //定义回调函数
                function _back(){
                    if(xhr.readyState == 4){
                        if(xhr.status == 200){
                            //获取服务器的响应数据
                            var ret = xhr.responseXML;
                            var ele = ret.getElementsByTagName("return")[0];
                            alert(ele.textContent);
                        }
                    }
                }
            </script>
        </head>
        <body>
            <input type="button" value="使用ajax方式调用webservice服务" onclick="sendAjax();">
        </body>
    </html>
    requestBody 请求体,可以通过myeclipse自带插件,点击go以后,下边的请求体就是我们想要的格式。


    二,使用urlconnection方式
    package cn.demo.client.urlconnection;
    
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    /**
     * 使用urlconnection方式调用webservice服务
     * @author zhaoqx
     *
     */
    public class App {
        public static void main(String[] args) throws Exception {
            URL wsUrl = new URL("http://192.168.13.66:8080/hello");
            HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection();
            
            //构造请求体
            String requestBody = "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" " + 
                                    "xmlns:q0="http://service.demo.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" "+
                                    "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"+
                                    "<soapenv:Body><q0:sayHi><arg0>xiaoming</arg0></q0:sayHi></soapenv:Body></soapenv:Envelope>";
            //设置请求的参数
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("content-type", "text/xml;charset=UTF-8");
            
            //向服务端写数据
            conn.getOutputStream().write(requestBody.getBytes());
            
            int responseCode = conn.getResponseCode();
            if(responseCode == 200){
                //使用输入流获取服务端响应数据
                InputStream in = conn.getInputStream();
                byte[] b = new byte[1024];
                int len = 0;
                StringBuffer sb = new StringBuffer();
                while((len = in.read(b)) != -1){
                    String s = new String(b, 0, len,"UTF-8");
                    sb.append(s);
                }
                System.out.println(sb.toString());
                in.close();
            }
            
        }
    }
  • 相关阅读:
    Linux入门-ssh scp rsync
    Linux入门-samba
    Linux入门-vsftp
    Linux入门-nfs
    MySQL卸载(rpm)
    rust_3_所有权
    rust_1_入门指南与猜猜看游戏
    vscode首次ssh remote linux连不上
    vbox新装ubuntu虚拟机注意事项
    IBM Rational Rose和Start UML的c++逆向工程自动生成UML类图组件
  • 原文地址:https://www.cnblogs.com/MessiAndDream/p/6116140.html
Copyright © 2011-2022 走看看