Asp.net

HttpRequest的HttpMethod和RequestType有什麼區別?

  • January 28, 2010

HttpRequest類定義了兩個屬性:

Http方法

獲取客戶端使用的 HTTP 數據傳輸方法(如 GET、POST 或 HEAD)。

public string HttpMethod { get; }  

客戶端使用的 HTTP 數據傳輸方法。

和**RequestType**:

獲取或設置客戶端使用的 HTTP 數據傳輸方法(GET 或 POST)。

public string RequestType { get; set; }

表示客戶端發送的 HTTP 呼叫類型的字元串。

這兩個屬性有什麼區別?我什麼時候想使用其中一個?哪個是正確的檢查以查看客戶端使用了哪種數據傳輸方法?

文件表明HttpMethod將返回使用的任何動詞:

例如 GET、POST 或 HEAD

RequestType上的文件似乎只指出了兩個可能值之一:

獲取或發布


我用動詞的隨機抽樣進行了測試,兩個屬性似乎都支持所有動詞,並且都返回相同的值:

測試:

Client Used    HttpMethod    RequestType
GET            GET           GET
POST           POST          POST
HEAD           HEAD          HEAD
CONNECT        CONNECT       CONNECT
MKCOL          MKCOL         MKCOL
PUT            PUT           PUT
FOOTEST        FOOTEST       FOOTEST

有什麼區別:

  • HttpRequest.HttpMethod
  • HttpRequest.RequestType

我什麼時候應該使用另一個?

反射器顯示內部RequestType呼叫HttpMethod。所以你打電話會稍微HttpMethod好一點。實際上,我認為RequestType存在的真正原因是與經典 ASP 的向後兼容性。

引用自:https://stackoverflow.com/questions/2156822