做客戶端有必要對soap做基本的了解,開發(fā)手機(jī)的程序員可能對web service不是太了解。
soap簡單說是基于xml的,建立在http協(xié)議上的協(xié)議,用來調(diào)用web server提供的service。
這里轉(zhuǎn)載一個對soap的簡單原理,希望對大家有幫助
什么是Web Services
從表面上看,Web service 就是一個應(yīng)用程序,它向外界暴露出一個能夠通過Web進(jìn)行調(diào)用的API。也就是說,可以利用編程的方法通過Web來調(diào)用這個應(yīng)用程序。
對Web service 更精確的解釋: Web services是建立可互操作的分布式應(yīng)用程序的新平臺。Web service平臺是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標(biāo)準(zhǔn)對這些服務(wù)進(jìn)行查詢和訪問。
不管你的Web service是用什么工具,什么語言寫出來的,只要你用SOAP協(xié)議通過HTTP來調(diào)用它,總體結(jié)構(gòu)都一致。通常,你用你自己喜歡的語言(如VB 6或者VB.NET)來構(gòu)建你的Web service,然后用SOAP Toolkit或者.NET的內(nèi)建支持來把它暴露給Web客戶。于是,任何語言,任何平臺上的客戶都可以閱讀其WSDL文檔,以調(diào)用這個Web service。客戶根據(jù)WSDL描述文檔,會生成一個SOAP請求消息。Web service都是放在Web服務(wù)器 (如IIS) 后面的,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,發(fā)送到Web服務(wù)器來。Web服務(wù)器再把這些請求轉(zhuǎn)發(fā)給Web service請求處理器。請求處理器的作用在于,解析收到的SOAP請求,調(diào)用Web service,然后再生成相應(yīng)的SOAP應(yīng)答。Web服務(wù)器得到SOAP應(yīng)答后,會再通過HTTP應(yīng)答的方式把它送回到客戶端。
iGoogle 發(fā)表于 2010-10-24 17:00
基本概念
SOAP
XML和XSD
WSDL(Web Services Description Language)
WSML(Web Services Meta Language)
什么時候使用Web Services
Web service是創(chuàng)建可互操作的分布式應(yīng)用程序的新平臺。Web service 的主要目標(biāo)是跨平臺的可互操作性。為了達(dá)到這一目標(biāo),Web service 是完全基于XML、XSD等獨(dú)立于平臺、獨(dú)立于軟件供應(yīng)商的標(biāo)準(zhǔn)的。
Web service在應(yīng)用程序跨平臺和跨網(wǎng)絡(luò)進(jìn)行通信的時候是非常有用的。Web service適用于應(yīng)用程序集成、B2B集成、代碼和數(shù)據(jù)重用,以及通過Web進(jìn)行客戶端和服務(wù)器的通信的場合。
當(dāng)然,Web service也不是萬能的,你不能到處濫用Web service。在有些情況下,Web service 會降低應(yīng)用程序的性能,而不會帶來任何好處。例如,一臺機(jī)器或一個局域網(wǎng)里面運(yùn)行的同構(gòu)應(yīng)用程序就不應(yīng)該用Web service 進(jìn)行通信。
如何調(diào)用Web Services
客戶端:取得服務(wù)端的服務(wù)描述文件WSDL,解析該文件的內(nèi)容,了解服務(wù)端的服務(wù)信息,以及調(diào)用方式。根據(jù)需要,生成恰當(dāng)?shù)腟OAP請求消息(指定調(diào)用的方法,已經(jīng)調(diào)用的參數(shù)),發(fā)往服務(wù)端。等待服務(wù)端返回的SOAP回應(yīng)消息,解析得到返回值。
服務(wù)端:生成服務(wù)描述文件,以供客戶端獲取。接收客戶端發(fā)來的SOAP請求消息,解析其中的方法調(diào)用和參數(shù)格式。根據(jù)WSDL和WSML的描述,調(diào)用相應(yīng)的COM對象來完成指定功能,并把返回值放入SOAP回應(yīng)消息返回給用戶。
高層接口
使用高層接口,不需要知道SOAP和XML的任何信息,就可以生成和使用一個WebService。Soap Toolkit 2.0通過提供兩個COM對象――SoapClient和SoapServer,來完成這些功能。
在客戶端,只需要生成一個SoapClient實例,并用WSDL作為參數(shù)來調(diào)用其中的mssoapinit方法。SoapClient對象會自動解析 WSDL文件,并在內(nèi)部生成所有Web Service的方法和參數(shù)信息。之后,你就可以像調(diào)用IDispatch接口里的方法一樣,調(diào)用里面所有的方法。在VB或是腳本語言里,你甚至可以直接在SoapClient對象名后面直接加上.方法(參數(shù)…)進(jìn)行調(diào)用。
低層接口
要使用低層接口,你必須對SOAP和XML有所了解。你可以對SOAP的處理過程進(jìn)行控制,特別是要做特殊處理的時候。
在客戶端,首先要創(chuàng)建一個HttpConnector對象,負(fù)責(zé)HTTP連接。設(shè)定Connector的一些頭部信息,比如EndPoinURL和 SoapAction等。如果網(wǎng)絡(luò)連接需要使用代理服務(wù)器,那也要在這里設(shè)定相關(guān)的信息。接著創(chuàng)建SoapSerializer對象,用于生成Soap消息。按照WSDL里定義,把所有參數(shù)按順序序列化,得到一個完整的SOAP請求消息。該Soap消息,作為Payload通過HttpConnector 被發(fā)送到服務(wù)端。最后,生成一個