Web Service服務(wù)其實(shí)也是基于HTTP協(xié)議(它基于SOAP協(xié)議,而SOAP又是基于HTTP協(xié)議)。最大缺點(diǎn)我覺(jué)得是Web Service實(shí)在是太厚重了,特別對(duì)于移動(dòng)端來(lái)說(shuō),WSDL是基于XML,XML已經(jīng)夠厚重了,WSDL還有一些頭信息,更加厚重。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供鄠邑網(wǎng)站建設(shè)、鄠邑做網(wǎng)站、鄠邑網(wǎng)站設(shè)計(jì)、鄠邑網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、鄠邑企業(yè)網(wǎng)站模板建站服務(wù),10余年鄠邑做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
使用SOAP1協(xié)議創(chuàng)建Envelop對(duì)象:SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 設(shè)置SOAP協(xié)議的版本號(hào),根據(jù)服務(wù)端WebService的版本號(hào)設(shè)置。
SOAP(SimpleObjectAccessProtocol)是一種基于XML的協(xié)議,用于在分布式應(yīng)用程序之間交換信息。SOAP版本1在過(guò)去的幾十年中被廣泛使用,尤其是在Web服務(wù)中。
1、注意點(diǎn)1:調(diào)用Web Service之前你需要先弄清楚這4個(gè)的值分別是什么:命名空間、調(diào)用的方法名稱、EndPoint和SOAP Action。
2、網(wǎng)絡(luò)故障:檢查客戶端網(wǎng)絡(luò)連接是否正常,是否存在網(wǎng)絡(luò)防火墻或代理等阻止訪問(wèn)webservice服務(wù)的情況。客戶端調(diào)用方式錯(cuò)誤:檢查客戶端調(diào)用webservice服務(wù)的方式是否正確,如SOAP或REST等。
3、在Android平臺(tái)調(diào)用WebService需要依賴于第三方類庫(kù)ksoap2,它是一個(gè)SOAPWebservice客戶端開(kāi)發(fā)包,主要用于資源受限制的Java環(huán)境如Applets或J2ME應(yīng)用程序(CLDC/CDC/MIDP)。
4、多一個(gè)(System.Date)強(qiáng)行轉(zhuǎn)換就可以了。
5、WebService是一種基于SOAP協(xié)議的遠(yuǎn)程調(diào)用標(biāo)準(zhǔn),通過(guò)webservice可以將不同操作系統(tǒng)平臺(tái)、不同語(yǔ)言、不同技術(shù)整合到一塊。在Android SDK中并沒(méi)有提供調(diào)用WebService的庫(kù),因此,需要使用第三方的SDK來(lái)調(diào)用WebService。
1、首先下載ksoap2安裝包,應(yīng)用到工程。然后Android要在mainfrist文件加入Internet權(quán)限才能調(diào)用網(wǎng)絡(luò)。
2、使用KSOAP2調(diào)用WebService 按如下6步來(lái)調(diào)用WebService的方法。
3、沒(méi)錯(cuò),在Android平臺(tái)中我們并不會(huì)直接使用ksoap2,而是使用ksoap2android。KSoap2Android是Android平臺(tái)上一個(gè)高效、輕量級(jí)的SOAP開(kāi)發(fā)包,等同于Android平臺(tái)上的KSoap2的移植版本。
4、想實(shí)現(xiàn)一個(gè)功能即讓android訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù),但是網(wǎng)上很多人都不建議直連。據(jù)說(shuō)問(wèn)題多多。那么中間就加個(gè)第三者吧。 實(shí)現(xiàn)思路:在數(shù)據(jù)庫(kù)和Android客戶端添加一個(gè)webservice,處理每次客戶端發(fā)來(lái)的請(qǐng)求。
5、SOAP簡(jiǎn)單的理解,就是這樣的一個(gè)開(kāi)放協(xié)議SOAP=RPC+HTTP+XML:采用HTTP作為底層通訊協(xié)議;RPC作為一致性的調(diào)用途徑,xml作為數(shù)據(jù)傳送的格式。
6、SoapObject object = (SoapObject) envelope.bodyIn;把這句話里的 (SoapObject)改成Object就可以了。是類型轉(zhuǎn)換出的問(wèn)題。我也是剛解決這個(gè)問(wèn)題。
可以從http://code.google點(diǎn)抗 /p/ksoap2-android/downloads/list進(jìn)行下載;將下載的ksoap2-android-assembly-4-jar-with-dependencies.jar包復(fù)制到Eclipse工程的lib目錄中,當(dāng)然也可以放在其他的目錄里。
要根據(jù)實(shí)際應(yīng)用的需求和數(shù)據(jù)量。HTTP 定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。事實(shí)上 GET 適用于多數(shù)請(qǐng)求,而保留 POST 僅用于更新站點(diǎn)。
結(jié)果也寫(xiě)成XML作為RESPONSE送回用戶端, 為了使用戶端和WEB SERVICE可以相互對(duì)應(yīng),可以使用WSDL作為這種通信方式的描述文件,利用WSDL工具可以自動(dòng)生成WS和用戶端的框架文件,SOAP具備把復(fù)雜對(duì)象序列化捆綁到XML里去的能力。
一個(gè)AndroidManifest.xml中可以定義多個(gè)application 在開(kāi)始實(shí)現(xiàn)一個(gè)SOAP服務(wù)之前,您需要知道一些注意點(diǎn)和約定。
wsdl去除后剩余的部分;而SOAP Action通常為命名空間 + 調(diào)用的方法名稱。注意點(diǎn)2:設(shè)置調(diào)用WebService接口方法需要傳入的參數(shù)。
/axis2/service/SearchNewsService?wsdl”);(5)使用call方法調(diào)用WebService方法,代碼:ht.call(null,envelope);Call方法的第一個(gè)參數(shù)一般為null,第2個(gè)參數(shù)就是在第3步創(chuàng)建的SoapSerializationEnvelope對(duì)象。
webservice方法要傳遞參數(shù)的對(duì)象中包含了日期類型,guid類型。
實(shí)例化SoapObject對(duì)象:SoapObject soapObject = new SoapObject(SERVICE_NAMESPACE, methodName); 第一個(gè)參數(shù)表示W(wǎng)ebService的命名空間,可以從WSDL文檔中找到WebService的命名空間。第二個(gè)參數(shù)表示要調(diào)用的WebService方法名。