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