在android中使用webservice,首先要导入Android webservice支持包
ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar
然后,
HttpTransportSE tSe = new HttpTransportSE(SERVER_URL, TIME_OUT);
tSe.debug = false; //是否启动debug模式
SoapObject soapObject = new SoapObject(NAME_SPACE, method);
//设置参数
JSONObject params = new JSONObject(param);
//设置参数, 参数名为 mJsonString的字符串
soapObject.addProperty("mJsonString", params.toString());
SoapSerializationEnvelope soapserial = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapserial.bodyOut = soapObject;
// 设置与.NET提供的Web service保持有良好的兼容性
soapserial.dotNet = true;
// 调用HttpTransportSE对象的call方法来调用 webserice
tSe.call(NAME_SPACE + method, soapserial);
SoapObject result = (SoapObject) soapserial.bodyIn;
int count = result.getPropertyCount();
return result.getProperty(count-1).toString();
此处的 soapObject.addProperty("mJsonString", params.toString()); 方法为设置方法的参数, 如果有多个参数,就多调用几次这个就好了。
暂时没有解决数组类型的参数传递。 建议尽量在服务端使用数组作为参数传递。
return之后的结果,服务器端返回的数据,我的服务器端返回的统一为json字符串。