2024年4月6日发(作者:滕忆曼)
Android如何使用WebService接口
在OPhone 中使用KSOAP2调用WebService
WebService是一种基于SOAP协议的远程调用标准。通过WebService可以将不同
操作系统平台,不同语言、不同技术整合到一起。在OPhone SDK中并没有提供调用We
bService的库,因此,需要使用第三方类库(KSOAP2)来调用WebService。在本文将
介绍在OPhone中调用WebService的具体细节,并在最后给出一个完整的例子来演示如
何使用KSOAP2来调用WebService。
安装第三方类库:KSOAP2
PC版本的WebService客户端类库非常丰富,例如,Axis2、CXF等,但这些类库对
于OPhone系统过于庞大,也未必很容易移植到OPhone系统上。因此,这些开发包并
不在我们考虑的范围内。适合手机的WebService客户端类库也有一些。本例使用了比较
常用的KSOAP2。读者可以从如下的地址下载Android版(OPhone SDK1.5也同样适用)
的KSOAP2。
/p/ksoap2-android/downloads/list
将下载后的jar文件复制到Eclipse工程的lib目录中(如果没有该目录,可以新建一
个,当然,也可以放在其他的目录中)。并在Eclipse工程中引用这个jar包,引用后的Ec
lipse工程目录结构如图1所示。
图1 引用KSOAP2开发包
使用KSOAP2调用WebService
读者可按如下6步来调用WebService的方法。
1. 指定WebService的命名空间和调用的方法名,代码如下:
SoapObject request = new SoapObject("service", "getName");
SoapObject类的第1个参数表示WebService的命名空间,可以从WSDL文档中找
到WebService的命名空间。第2个参数表示要调用的WebService方法名。
2. 设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步。
设置方法的参数值的代码如下:
perty("param1", "value1"); perty("param2", "v
alue2");
要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数
值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即
可。
3. 生成调用WebService方法的SOAP请求信息。该信息由SoapSerializationEnve
lope对象描述,代码如下:
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(Soap
11); t = request;
2024年4月6日发(作者:滕忆曼)
Android如何使用WebService接口
在OPhone 中使用KSOAP2调用WebService
WebService是一种基于SOAP协议的远程调用标准。通过WebService可以将不同
操作系统平台,不同语言、不同技术整合到一起。在OPhone SDK中并没有提供调用We
bService的库,因此,需要使用第三方类库(KSOAP2)来调用WebService。在本文将
介绍在OPhone中调用WebService的具体细节,并在最后给出一个完整的例子来演示如
何使用KSOAP2来调用WebService。
安装第三方类库:KSOAP2
PC版本的WebService客户端类库非常丰富,例如,Axis2、CXF等,但这些类库对
于OPhone系统过于庞大,也未必很容易移植到OPhone系统上。因此,这些开发包并
不在我们考虑的范围内。适合手机的WebService客户端类库也有一些。本例使用了比较
常用的KSOAP2。读者可以从如下的地址下载Android版(OPhone SDK1.5也同样适用)
的KSOAP2。
/p/ksoap2-android/downloads/list
将下载后的jar文件复制到Eclipse工程的lib目录中(如果没有该目录,可以新建一
个,当然,也可以放在其他的目录中)。并在Eclipse工程中引用这个jar包,引用后的Ec
lipse工程目录结构如图1所示。
图1 引用KSOAP2开发包
使用KSOAP2调用WebService
读者可按如下6步来调用WebService的方法。
1. 指定WebService的命名空间和调用的方法名,代码如下:
SoapObject request = new SoapObject("service", "getName");
SoapObject类的第1个参数表示WebService的命名空间,可以从WSDL文档中找
到WebService的命名空间。第2个参数表示要调用的WebService方法名。
2. 设置调用方法的参数值,这一步是可选的,如果方法没有参数,可以省略这一步。
设置方法的参数值的代码如下:
perty("param1", "value1"); perty("param2", "v
alue2");
要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数
值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即
可。
3. 生成调用WebService方法的SOAP请求信息。该信息由SoapSerializationEnve
lope对象描述,代码如下:
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(Soap
11); t = request;