在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字符串。