Fork me on GitHub

WebService调用(基于KSOAP2)

 public static boolean getData(String param) {
        //WebService服务器地址
        String SERVICE_URL = "http://222.222.221.197:82/webserviceurl.asmx";
        //URL命名空间
        String SERVICE_NS = "http://namespace.org/";
        //访问方法
        String methodName = "myMethod";

        // 创建SoapObject对象,
        // 创建该对象时需要传入所要调用Wb Service的命名空间、Web Service方法名;
        SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);
        // 如果有参数要传给Web Service服务器,
        // 调用SoapObject对象的addProperty(String name,Object value)方法来设置参数,
        // 该方法的name参数指定参数名;
        // value参数指定参数值
        soapObject.addProperty("p1", param);
        // 使用SOA1.1协议创建Envelop对象
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
        envelope.bodyOut = soapObject;
        // 是否调用DotNet开发的WebService ,设置与.net提供的Web Service 保持较好的兼容性
        envelope.dotNet = true; //如果不是.net的可以删除此行
        try {
            // 通过HttpTransportSE传输对象,传入WebService服务器地址
            HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
            // 调用HttpTransportSE对象的call()方法,其中call的第一个参数soapAction,
            // 第二个为SoapSerializationEvelope对象 调用远程Web Service;
            ht.call(SERVICE_NS + methodName, envelope);
            if (envelope.getResponse() != null) {
                // 获取服务器响应返回的SOAP消息
                /*
                 * SoapObject result = (SoapObject) envelope.bodyIn;
                 * SoapObject detail = (SoapObject) result.getProperty(methodName+"Result");
                 */
                /*
                 * 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn;
                 * 获取返回的结果 String result = object.getProperty(0).toString();
                 */
                // 解析服务器相应的SOAP消息-字符串
                String result = envelope.getResponse().toString();
                if (result.equals("success")) {
                    return true;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            System.out.println("********************异常啦");
        }
        return false;
}

WebService是一种跨编程语言和跨操作系统平台的远程调用技术。XML+XSD(XML Schema),SOAP(Simple Object Access Protocol)和WSDL(Web Services Description Language)就是构成WebService平台的三大技术。SOAP协议 = HTTP协议 + XML数据格式

适用场合:1、跨防火墙通信。2、应用程序集成。3、B2B集成。4、软件和数据重用。

不适用场合:1、单机应用程序。2、局域网的同构应用程序

本文参考webService博客ksoap2使用博客

posted @ 2017-10-26 09:59  秋夜雨巷  阅读(332)  评论(0编辑  收藏  举报