資源描述:
《android如何使用webservice接口》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、....Android如何使用WebService接口在OPhone中使用KSOAP2調(diào)用WebServiceWebService是一種基于SOAP協(xié)議的遠(yuǎn)程調(diào)用標(biāo)準(zhǔn)。通過WebService可以將不同操作系統(tǒng)平臺,不同語言、不同技術(shù)整合到一起。在OPhoneSDK中并沒有提供調(diào)用WebService的庫,因此,需要使用第三方類庫(KSOAP2)來調(diào)用WebService。在本文將介紹在OPhone中調(diào)用WebService的具體細(xì)節(jié),并在最后給出一個(gè)完整的例子來演示如何使用KSOAP2來調(diào)用WebService。安裝第三方類庫:KSOAP2PC版本的WebServ
2、ice客戶端類庫非常豐富,例如,Axis2、CXF等,但這些類庫對于OPhone系統(tǒng)過于龐大,也未必很容易移植到OPhone系統(tǒng)上。因此,這些開發(fā)包并不在我們考慮的范圍內(nèi)。適合手機(jī)的WebService客戶端類庫也有一些。本例使用了比較常用的KSOAP2。讀者可以從如下的地址下載Android版(OPhoneSDK1.5也同樣適用)的KSOAP2。http://code.google.com/p/ksoap2-android/downloads/list將下載后的jar文件復(fù)制到Eclipse工程的lib目錄中(如果沒有該目錄,可以新建一個(gè),當(dāng)然,也可以放在其他的目
3、錄中)。并在Eclipse工程中引用這個(gè)jar包,引用后的Eclipse工程目錄結(jié)構(gòu)如圖1所示。圖1引用KSOAP2開發(fā)包使用KSOAP2調(diào)用WebService讀者可按如下6步來調(diào)用WebService的方法。1.指定WebService的命名空間和調(diào)用的方法名,代碼如下:........SoapObjectrequest=newSoapObject("http://service","getName");SoapObject類的第1個(gè)參數(shù)表示W(wǎng)ebService的命名空間,可以從WSDL文檔中找到WebService的命名空間。第2個(gè)參數(shù)表示要調(diào)用的WebSer
4、vice方法名。2.設(shè)置調(diào)用方法的參數(shù)值,這一步是可選的,如果方法沒有參數(shù),可以省略這一步。設(shè)置方法的參數(shù)值的代碼如下:request.addProperty("param1","value1");request.addProperty("param2","value2");要注意的是,addProperty方法的第1個(gè)參數(shù)雖然表示調(diào)用方法的參數(shù)名,但該參數(shù)值并不一定與服務(wù)端的WebService類中的方法參數(shù)名一致,只要設(shè)置參數(shù)的順序一致即可。3.生成調(diào)用WebService方法的SOAP請求信息。該信息由SoapSerializationEnvelope對象描述
5、,代碼如下:SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut=request;創(chuàng)建SoapSerializationEnvelope對象時(shí)需要通過SoapSerializationEnvelope類的構(gòu)造方法設(shè)置SOAP協(xié)議的版本號。該版本號需要根據(jù)服務(wù)端WebService的版本號設(shè)置。在創(chuàng)建SoapSerializationEnvelope對象后,不要忘了設(shè)置SoapSerializationEnvelope類的b
6、odyOut屬性,該屬性的值就是在第1步創(chuàng)建的SoapObject對象。4.創(chuàng)建HttpTransportSE對象。通過HttpTransportSE類的構(gòu)造方法可以指定WebService的WSDL文檔的URL,代碼如下:HttpTransportSEht=newHttpTransportSE("http://192.168.17.156:8080/axis2/services/SearchProductService?wsdl");........5.使用call方法調(diào)用WebService方法,代碼如下:ht.call(null,envelope);call方
7、法的第1個(gè)參數(shù)一般為null,第2個(gè)參數(shù)就是在第3步創(chuàng)建的SoapSerializationEnvelope對象。6.使用getResponse方法獲得WebService方法的返回結(jié)果,代碼如下:SoapObjectsoapObject=(SoapObject)envelope.getResponse();示例:通過WebService查詢產(chǎn)品信息本例涉及到一個(gè)WebService服務(wù)端程序和一個(gè)OPhone客戶端程序。讀者可直接將服務(wù)端程序(axis2目錄)復(fù)制到webapps目錄中,然后啟動(dòng)Tomcat,并在瀏覽器地址欄中輸入如下