使用KSOAP2调用WebService
本文转至:http://www.devdiv.com/home.php?mod=space&uid=14682&do=blog&id=2352安装第三方类库:KSOAP2??????? PC版本的WebService客户端类库非常丰富,例如,Axis2、CXF等,但这些类库对于Android系统过于庞大,也未必很容易移植到Android系统上。因此,这些开发包并不在我们考虑的范围内。适合手机的WebService客户端类库也有一些。本例使用了比较常用的KSOAP2。读者可以从如下的地址下载Android版的KSOAP2。?http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
使用KSOAP2调用WebService? ? ? ?可按如下6步来调用WebService的方法。1.?指定WebService的命名空间和调用的方法名,代码如下:
图2?WebService主页面???????? 这个服务端WebService程序是SearchProductService,实际上SearchProductService是一个Java类,只是利用Axis2将其映射成WebService。在该类中有一个getProduct方法。这个方法有一个String类型的参数,表示产品名称。该方法返回一个Product对象,该对象有3个属性:name、price和productNumber。读者可以使用如下的URL来查看SearchProductService的WSDL文档。http://localhost:8080/axis2/services/SearchProductService?wsdl??????? 显示WSDL文档的页面如图3所示。图3?WSDL文档????????? 在图3中的黑框中就是WebService的命名空间,也是SoapObject类的构造方法的第1个参数值。这个WebService程序可以直接使用如下的URL进行测试。http://localhost:8080/axis2/services/SearchProductService/getProduct?param0=iphone???????? 测试的结果如图4所示。
图4?测试getProduct方法???????? 从图4所示的测试结果可以看出,Axis2将getProduct方法返回的Product对象直接转换成了XML文档(实际上是SOAP格式)返回。??????? 下面我们来根据前面介绍的使用KSOAP2的步骤来编写调用WebService的OPhone客户端程序,代码如下:????{??