最近公司有个项目需要从Android平台访问WebService接口,实现向发布的函数传递对象。在网上找了一些资料,发现使用ksoap2可以调用WebService传递对象。

 

需要引入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar

 

//WebService的命名空间

static final String namespace = "http://impl.service.suncreate.com";

//服务器发布的url

static final String url = http://10.100.3.41/axis2/services/UploadService;

 

final String methodName = "upload"; // 函数名

final int sessionID = "111111";  //sessionID

 

//创建HttpTransportSE对象,通过HttpTransportSE类的构造方法可以指定WebServiceurl 

 

HttpTransportSE transport = new HttpTransportSE(url);

transport.debug = true; 

 

//指定WebService的命名空间和函数名

SoapObject soapObject = new SoapObject(namespace, methodName);

 

//设置调用方法参数的值

soapObject.addProperty("sessionID", sessionID); //sessionID

soapObject.addProperty("data", cds); //cds是需要传递的对象

 

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);

envelope.bodyOut = transport;

envelope.setOutputSoapObject(soapObject);

 

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

transport.call(null, envelope);

SoapObject sb = (SoapObject) envelope.bodyIn;

String xmlMessage = sb.toString(); // 获取从服务器端返回的XML字符串

posted on 2011-01-24 16:51  鹰隼  阅读(17488)  评论(5编辑  收藏  举报