您的位置:首页 > 移动开发 > Android开发

Android利用soap WSDL与Webservice通信

2016-02-01 19:23 344 查看
首先导入需要jar包:ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar

下载地址:http://download.csdn.net/detail/howlaa/7040271

需要6个步骤,关于下面代码中的NAME_SPACE等,可以通过一个软件SoapUI,来连接服务器获得。

[java] view
plain copy

 





/** 命名空间. */    

   private final static String NAME_SPACE = "urn:soap";    

   

   /** 方法. */    

   private final static String METHOD_NAME = "Add";    

   

   /** WSDL文件的URL. */    

   private final static String WSDL_URL = "http://192.168.1.112:80/index.php/service?wsdl";    

[java] view
plain copy

 





//1. 指定WebService的命名空间和调用的方法名  

            SoapObject  request=new SoapObject(NAME_SPACE, METHOD_NAME);  

[java] view
plain copy

 





//2. 设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步  

        request.addProperty("a","123");  

        request.addProperty("b","12");  

[java] view
plain copy

 





//3. 生成调用WebService方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述  

            SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);  

            envelope.bodyOut = request;  

[java] view
plain copy

 





//4. 创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URL  

        HttpTransportSE ht = new HttpTransportSE(WSDL_URL);        

        ht.debug = true;  

//5. 使用call方法调用WebService方法 

[java] view
plain copy

 





List headerList =ht.call(null, envelope,null);  

注意,如果不需要头文件,只需要传递前两个参数即可

[java] view
plain copy

 





//6. 使用getResponse方法获得WebService方法的返回结果  

                SoapObject result=(SoapObject)envelope.bodyIn;  

                Log.i("========",result.getProperty("Add").toString()); 

如果报错,用一下方法也可以打印出返回结果:

System.out.println(envelope.getResponse());

参考:http://blog.csdn.net/windzou36/article/details/7315898

转载地址:http://blog.csdn.net/howlaa/article/details/21237331
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android webservice