2011-01-10 108 views
5

我創造了我的第一個Web服務3天前在VS 2008和在想消費它,當我遇到有關Web服務的以下幾個問題來了:HTTP的SOAP GET POST

1)我的Web服務測試調用頁面(作爲.NET框架一部分的罐頭頁面)不顯示任何示例HTTP GET請求\響應消息。它顯示的唯一消息是HTTP POST,SOAP 1.1和SOAP 1.2。假設我的網絡服務是一些如何不鼓勵使用HTTP GET協議來調用它們?

2)要通過瀏覽器進行HTTP-POST調用,我創建了一個示例html頁面。我是否也可以做同樣的示例HTTP-SOAP調用?如果是,那麼響應是否爲SOAP格式?任何人都可以給我這樣一個HTML頁面。

3)在通過瀏覽器撥打網絡服務時,我們如何發送主機頭信息?

4)當我們使用POST方法調用Web服務時(爲什麼我們稱之爲'HTTP-SOAP調用'(method ='post')?

5)爲什麼HTTP-SOAP應該優先於HTTP-GET和HTTP-POST?

感謝和問候 米蘭

回答

0

首先,你可能已經犯了一個錯誤。您是否創建了帶.ASMX擴展名的服務?

這是一個傳統的「ASMX」Web服務,除非你別無選擇,否則不應該用於新開發。 WCF應該用於所有新的開發。

其次,GET不能用於將複雜類型發送到服務,因爲它將參數放入查詢字符串中。 POST,實際上幾乎沒有用處,除了測試頁面(它也不能發送複雜類型)。

對於這樣的服務真正重要的唯一事情就是SOAP。你應該創建一個客戶端應用程序來測試它,也許是一組單元測試。

7

標準SOAP服務僅使用HTTP POST,因爲它們需要複雜的SOAP請求(XML),它不能包含在查詢字符串中。

當您想從網頁調用您的SOAP服務時,您的頁面必須構建有效的SOAP請求。因此,SOAP調用通常由服務器端的自動生成的服務客戶端創建。

我們可以稱之爲HTTP-SOAP,因爲它是通過HTTP協議使用POST方法傳輸的SOAP請求。

它沒有優先權。 SOAP服務通常是如何工作的。如果你想使用HTTP GET和HTTP POST,你應該檢查REST服務。

+0

感謝您的回覆。但在IE6中,我曾在測試調用頁面中獲取示例HTTP GET請求\響應消息以及HTTP POST和HTTP SOAP請求\響應消息。爲什麼現在不可見? – 2011-01-12 11:32:26