利用ksoap调用webservice

博文参考:

http://www.cnblogs.com/shenliang123/archive/2012/07/05/2578586.html

http://blog.csdn.net/jimbo_lee/article/details/23612333

http://www.cnblogs.com/zhangchaoyang/articles/1955834.html

 

注意:

1、需要加网络权限

2、跟一般的联网操作一样需要在子线程中。

3、两个主要参数: webservice的命名空间和要调用的方法名

引入jar包后,按以下步骤走就可以了。

(1)创建HttpTransportSE对象,该对象用于调用WebService操作

HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);

(2)创建SoapSerializationEnvelope对象

 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

(3)创建SoapObject对象,创建该对象时需要传入所要调用的Web Service的命名空间和WebService方法名

SoapObject request = new SoapObject(SERVICE_NS, methodName);

(4)如果有参数传给Web Service服务器端,调用SoapObject对象的addProperty(String name, Object value)方法来设置参数,该方法的name参数指定参数名

  注意:参数名不一定要与服务端的方法中的参数名相同,只要对应顺序相同即可;value参数指定参数值

request.addProperty("name", "1006010054");

(5)调用SoapSerializationEnvelope的setOutputSoapObject()方法,或者直接对bodyOut属性赋值,将前两步创建的SoapObject对象设为SoapSerializationEnvelope

  的传出SOAP消息体

 envelope.bodyOut = request;

(6)调用对象的call()方法,并以SoapSerializationEnvelope作为参数调用远程的web service

ht.call(null, envelope);

(7)掉用完成后,访问SoapSerializationEnvelope对象的bodyIn属性,该属性返回一个SoapObject对象,该对象就代表Web service的返回消息,解析该对象,即可获得

  调用web service的返回值

SoapObject result = (SoapObject) envelope.bodyIn;
                String name = result.getProperty(0).toString();
posted @ 2016-07-28 14:36  epmouse  阅读(349)  评论(0编辑  收藏  举报