WebService是一种基于SOAP协议的远程调用标准,是一种嵌入式技术。通过WebService可以将不用操作系统,不同语言,不同技术整合到一块,在Android SDK并没有提供调用WebService的库,我们可以使用Ksoap2,可以自行下载,把对应的包复制到Eclipse的lib目录中,同时在Eclipse中引用这个jar包。
(1)指定WebService的命名空间和调用的方法名,如:
SoapObject request = new SoapObject(http://service,"getname”);
(2)设置调用的方法的参数值,如果没有参数,可以省略,设置参数如下:
Request.addProperty("param1",value);
(3)生成调用WebService方法的SOAP请求信息,给信息由SoapSerializationEnvelope对象描述。
(4)使用call方法调用WebService方法,如
ht.call(null,envelope);
(5)使用getResponse方法获得WebService方法的返回结果。如
SoapObject soapObject = (SoapObject )envelope.getResponse();
下面是一个简单的调用例子:
public class WebService {
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://scaucs.net:6390/Service1.svc";
private static final String METHOD = "GetData";
private static final String ACTION = "http://tempuri.org/IService1/GetData";
public String beginRequest(int value) {
String result = "";
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD);
request.addProperty("value", value);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE transport = new HttpTransportSE(URL);
transport.debug = true;
transport.call(ACTION, envelope);
result = envelope.getResponse().toString();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
return result;
}
}