SOAP是一個簡單對象訪問協議,它可看成HTTP與XML的結合,其中XML部分是作為HTTP報文的實體主體部分。
在iOS中使用SOAP,需要我們自己組裝XML格式的字符串,當XML字符串比較長的時候回變得很麻煩。另外,我們在寫XML格式的字符串時也要經常使用轉義字符“\”
什么是WebService ?從表面看 Webservice就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API.這就是說,你能夠用變成的方法通過web來調用這個應用程序。
1、WebService都是放在Web服務器后面的,客戶生成的SOAP請求會標嵌入在一個HTTP POST請求中發送到Web服務器來。
2、Web服務器再把這些請求轉發給Web service請求處理器,這些請求處理器的作用在于,解析收到的soap請求,調用Web service,然后再生成相應的SOAP應答。
3、Web服務器得到SOAP應答后,會再通過HTTP應答的方式把它送回到客戶端。
目前WebService的協議主要有SOAP1.0、SOAP1.1、SOAP1.2.SOAP協議的版本會影響請求是否成功。
HTTP在TCP/IP上通信。HTTP客戶機使用TCP連接到HTTP服務器,在建立連接之后,客戶機可向服務器發送HTTP請求消息。SOAP中HTTP請求消息:
POST /appserver/UserService.asmx HTTP/1.1 ? ??說明了SOAP請求方式是 HTTP POST請求
Host: 192.168.3.93 ? ? 說明主機地址是:192.168.3.93? ? ,我們的接口地址是:http://192.168.3.93/appserver/UserService.asmx
Content-Type: application/soap+xml; charset=utf-8 ? ?說明了消息的MIME類型,以及用于請求或響應的XML主體的字符編碼(可選)
Content-Length:length ? ?SOAP請求或響應主體的字節數
隨后,服務器會處理此請求,然后向客戶端發送一個HTTP響應,此響應包括
200 OK
Content-Type: text/plain
Content-Length: 200
在上面的例子中,服務器返回了一個 200 的狀態代碼。這是 HTTP 的標準成功代碼。
假如服務器無法對請求進行解碼,它可能會返回類似這樣的信息:
400?Bad?Request
Content-Length:?0
一條SOAP消息就是一個普通的XML文檔,包括下列元素:
Envelope元素 ? ? ?必需 ? ? 標識XML文檔是一條SOAP消息
Header元素 ? ? ? ? 可選 ? ? 包含頭部信息
Body元素 ? ? ? ? ?? 必需 ? ? 包含所有調用和響應信息
Fault元素 ? ? ? ? ? ? 可選 ? ? 提供有關在處理此消息時所發生的錯誤信息
SOAP方法是指SOAP編碼規則的HTTP請求/響應。
HTTP + XML = SOAP
題目:準備傳入的參數,使用城市編碼和簽證類型,查詢簽證須知
下面是一個soap請求
本文參考以下文章:
SOAP web service用AFNetWorking實現請求 - 西北風的專欄
- 博客頻道 - CSDN.NET