第一步:创建SoapObject对象,创建该对象时需要传入所要调用Wb Service的命名空间、Web Service方法名
SoapObject request = new SoapObject(webserviceUrl, method);
第三步:创建SoapSerializationEnelope对象,并传入SOAP协议的版本号;并设置对象的bodyOut属性
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
第四步:将SoapObject的request对象传出
MyAndroidHttpTransport androidHttpTransport = new MyAndroidHttpTransport(webserviceUrl + "?wsdl", timeout);
设置可调式状态,用于调试程序
androidHttpTransport.debug = true;
第六步:使用call方法调用WebService方法
call方法的第1个参数一般为null,第2个参数就是在第3步创建的SoapSerializationEnvelope对象
调用对象的call()方法,并以SoapSerializationEnvelope作为参数调用远程的web service
androidHttpTransport.call(null, envelope);
第七步:调用完成后,访问SoapSerializationEnvelope对象的bodyIn属性
该属性返回一个SoapObject对象,该对象就代表Web service的返回消息,
解析该对象,即可获得调用web service的返回值
SoapObject o = (SoapObject) envelope.bodyIn;
xmlString = o.getProperty(0).toString();
SoapObject request = new SoapObject(webserviceUrl, method);
第二步:调用SoapObject对象的addProperty(String name,Object value)方法来设置参数
该方法的name参数指定参数名;value参数指定参数值
request.addProperty(para[i],paravalues[i]);第三步:创建SoapSerializationEnelope对象,并传入SOAP协议的版本号;并设置对象的bodyOut属性
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
第四步:将SoapObject的request对象传出
envelope.bodyOut = request;
//等价于envelope.bodyOut = request;
envelope.setOutputSoapObject(request);
第五步:创建HttpTransportSE对象。通过HttpTransportSE类的构造方法可以指定WebService的WSDL文档的URLMyAndroidHttpTransport androidHttpTransport = new MyAndroidHttpTransport(webserviceUrl + "?wsdl", timeout);
设置可调式状态,用于调试程序
androidHttpTransport.debug = true;
第六步:使用call方法调用WebService方法
call方法的第1个参数一般为null,第2个参数就是在第3步创建的SoapSerializationEnvelope对象
调用对象的call()方法,并以SoapSerializationEnvelope作为参数调用远程的web service
androidHttpTransport.call(null, envelope);
第七步:调用完成后,访问SoapSerializationEnvelope对象的bodyIn属性
该属性返回一个SoapObject对象,该对象就代表Web service的返回消息,
解析该对象,即可获得调用web service的返回值
SoapObject o = (SoapObject) envelope.bodyIn;
xmlString = o.getProperty(0).toString();