一秒鐘搞懂webservice

 

雖然現在都是http的api,但是有些老項目依然用的是webservice,如果碰到了也需要用webservice來調用。所以像這種可能會用到的知識,花一秒鐘搞懂概念就行,用到的時候再說。

webservice(SOAP)與HTTP接口的區別

什麼是web service?

soap請求是HTTP POST的一個專用版本,遵循一種特殊的xml消息格式Content-type設置爲: text/xml任何數據都可以xml化。

爲什麼要學習web service?

大多數對外接口會實現web service方法而不是http方法,如果你不會,那就沒有辦法對接。
web service相對http (post/get)有好處嗎?

  1. 接口中實現的方法和要求參數一目瞭然
  2. 不用擔心大小寫問題
  3. 不用擔心中文urlencode問題
  4. 代碼中不用多次聲明認證(賬號,密碼)參數
  5. 傳遞參數可以爲數組,對象等…

web service相對http(post/get)快嗎?

由於要進行xml解析,速度可能會有所降低。

web service 可以被http(post/get)替代嗎?

完全可以,而且現在的開放平臺都是用的HTTP(post/get)實現的。

SOAP 請求:

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>

</soap:Envelope>

SOAP 響應:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
  </m:GetStockPriceResponse>
</soap:Body>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章