C# HTTP系列5 HttpWebResponse.StatusCode屬性

HttpWebResponse.StatusCode 屬性獲取響應的狀態。對應 HttpStatusCode 枚舉值之一。html

HttpStatusCode 枚舉
Accepted 202

等效於 HTTP 狀態 202。 Accepted 指示已接受請求作進一步處理。android

Ambiguous 300

等效於 HTTP 狀態 300。 Ambiguous 指示請求的信息有多種表示形式。 ios

默認操做是將此狀態視爲重定向,並遵循與此響應關聯的 Location 標頭的內容。不明確是的同義詞MultipleChoicesweb

BadGateway 502

等效於 HTTP 狀態 502。 BadGateway 指示中間代理服務器從另外一代理或原始服務器接收到錯誤響應。api

BadRequest 400

等效於 HTTP 狀態 400。 BadRequest 指示服務器未能識別請求。 若是沒有其餘適用的錯誤,緩存

或者不知道準確的錯誤或錯誤沒有本身的錯誤代碼,則發送 BadRequest服務器

Conflict 409

等效於 HTTP 狀態 409。 Conflict 指示因爲服務器上的衝突而未能執行請求。函數

Continue 100

等效於 HTTP 狀態 100。 Continue 指示客戶端可能繼續其請求。ui

Created 201

等效於 HTTP 狀態 201。 Created 指示請求致使在響應被髮送前建立新資源。spa

ExpectationFailed 417

等效於 HTTP 狀態 417。 ExpectationFailed 指示服務器未能符合 Expect 標頭中給定的預期值。

Forbidden 403

等效於 HTTP 狀態 403。 Forbidden 指示服務器拒絕知足請求。

Found 302

等效於 HTTP 狀態 302。 Found 指示請求的信息位於 Location 標頭中指定的 URI 處。 

接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。 原始請求方法爲 POST 時,

重定向的請求將使用 GET 方法。 找到是的同義詞重定向

GatewayTimeout 504

等效於 HTTP 狀態 504。 GatewayTimeout 指示中間代理服務器在等待來自另外一個代理或原始服務器的響應時已超時。

Gone 410

等效於 HTTP 狀態 410。 Gone 指示請求的資源再也不可用。

HttpVersionNotSupported 505

等效於 HTTP 狀態 505。 HttpVersionNotSupported指示服務器不支持請求的 HTTP 版本。

InternalServerError 500

等效於 HTTP 狀態 500。 InternalServerError 指示服務器上發生了通常錯誤。

LengthRequired 411

等效於 HTTP 狀態 411。 LengthRequired 指示缺乏必需的 Content-length 標頭。

MethodNotAllowed 405

等效於 HTTP 狀態 405。 MethodNotAllowed 指示請求的資源上不容許請求方法(POST 或 GET)。

Moved 301

等效於 HTTP 狀態 301。 Moved 指示請求的信息已移到 Location 頭中指定的 URI 處。 

接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。 原始請求方法爲 POST 時,

重定向的請求將使用 GET 方法。 移動是的同義詞MovedPermanently

MovedPermanently 301

等效於 HTTP 狀態 301。 MovedPermanently 指示請求的信息已移到 Location 頭中指定的 URI 處。 

接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。 MovedPermanently是的同義詞Moved

MultipleChoices 300

等效於 HTTP 狀態 300。 MultipleChoices 指示請求的信息有多種表示形式。 默認操做是將此狀態視爲重定向,

並遵循與此響應關聯的 Location 標頭的內容。 MultipleChoices是的同義詞不明確

NoContent 204

等效於 HTTP 狀態 204。 NoContent 指示已成功處理請求而且響應已被設定爲無內容。

NonAuthoritativeInformation 203

等效於 HTTP 狀態 203。NonAuthoritativeInformation 指示返回的元信息來自緩存副本而不是原始服務器,

所以可能不正確。

NotAcceptable 406

等效於 HTTP 狀態 406。 NotAcceptable 指示客戶端已用 Accept 標頭指示將不接受資源的任何可用表示形式。

NotFound 404

等效於 HTTP 狀態 404。 NotFound 指示請求的資源不在服務器上。

NotImplemented 501

等效於 HTTP 狀態 501。 NotImplemented 指示服務器不支持請求的函數。

NotModified 304

等效於 HTTP 狀態 304。 NotModified 指示客戶端的緩存副本是最新的。 未傳輸此資源的內容。

OK 200

等效於 HTTP 狀態 200。 OK 指示請求成功,且請求的信息包含在響應中。 這是最常接收的狀態代碼。

PartialContent 206

等效於 HTTP 狀態 206。 PartialContent 指示響應是包括字節範圍的 GET 請求所請求的部分響應。

PaymentRequired 402

等效於 HTTP 狀態 402。 保留 PaymentRequired 以供未來使用。

PreconditionFailed 412

等效於 HTTP 狀態 412。 PreconditionFailed 指示一個條件設置爲此請求失敗,而且沒法執行請求。

使用條件請求標頭,如: If-match、 設置條件 If-None-匹配項,或若是-以未修改形式-自。

ProxyAuthenticationRequired 407

等效於 HTTP 狀態 407。ProxyAuthenticationRequired 指示請求的代理要求身份驗證。 

Proxy-authenticate 標頭包含如何執行身份驗證的詳細信息。

Redirect 302

等效於 HTTP 狀態 302。 Redirect 指示請求的信息位於 Location 標頭中指定的 URI 處。

 接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。原始請求方法爲 POST 時,重定向的請求將使用 GET 方法。 

重定向是的同義詞找到

RedirectKeepVerb 307

等效於 HTTP 狀態 307。 RedirectKeepVerb 指示請求信息位於 Location 標頭中指定的 URI 處。 

接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。 原始請求方法爲 POST 時,重定向的請求還將使用 POST 方法。 RedirectKeepVerb是的同義詞TemporaryRedirect

RedirectMethod 303

等效於 HTTP 狀態 303。 做爲 POST 的結果,RedirectMethod 將客戶端自動重定向到 Location 標頭中指定的 URI。 

用 GET 生成對 Location 標頭所指定的資源的請求。 RedirectMethod是的同義詞SeeOther

RequestedRangeNotSatisfiable 416

等效於 HTTP 狀態 416。RequestedRangeNotSatisfiable 指示沒法返回從資源請求的數據範圍,由於範圍的開頭在資源的開頭以前,

或由於範圍的結尾在資源的結尾以後。

RequestEntityTooLarge 413

等效於 HTTP 狀態 413。 RequestEntityTooLarge 指示請求太大,服務器沒法處理。

RequestTimeout 408

等效於 HTTP 狀態 408。 RequestTimeout 指示客戶端沒有在服務器指望請求的時間內發送請求。

RequestUriTooLong 414

等效於 HTTP 狀態 414。 RequestUriTooLong 指示 URI 太長。

ResetContent 205

等效於 HTTP 狀態 205。 ResetContent 指示客戶端應重置(而非從新加載)當前資源。

SeeOther 303

等效於 HTTP 狀態 303。 做爲 POST 的結果,SeeOther 將客戶端自動重定向到 Location 標頭中指定的 URI。

用 GET 生成對 Location 標頭所指定的資源的請求。 SeeOther是的同義詞RedirectMethod

ServiceUnavailable 503

等效於 HTTP 狀態 503。 ServiceUnavailable 指示服務器暫時不可用,一般是因爲過多加載或維護。

SwitchingProtocols 101

等效於 HTTP 狀態 101。 SwitchingProtocols 指示正在更改協議版本或協議。

TemporaryRedirect 307

等效於 HTTP 狀態 307。 TemporaryRedirect 指示請求信息位於 Location 標頭中指定的 URI 處。 

接收到此狀態時的默認操做爲遵循與響應關聯的 Location 標頭。 原始請求方法爲 POST 時,重定向的請求還將使用 POST 方法。 TemporaryRedirect是的同義詞RedirectKeepVerb

Unauthorized 401

等效於 HTTP 狀態 401。 Unauthorized 指示請求的資源要求身份驗證。 WWW-Authenticate 標頭包含如何執行身份驗證的詳細信息。

UnsupportedMediaType 415

等效於 HTTP 狀態 415。 UnsupportedMediaType指示請求是不受支持的類型。

Unused 306

等效於 HTTP 狀態 306。 Unused 是未徹底指定的 HTTP/1.1 規範的建議擴展。

UpgradeRequired 426

等效於 HTTP 狀態 426。 UpgradeRequired 指示客戶端應切換爲諸如 TLS/1.0 之類的其餘協議。

UseProxy 305

等效於 HTTP 狀態 305。 UseProxy 指示請求應使用位於 Location 標頭中指定的 URI 的代理服務器。

 
示例
下面的示例將返回的狀態進行比較HttpWebResponse的成員HttpStatusCode類來肯定響應的狀態。
 1 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
 2 httpReq.AllowAutoRedirect = false;
 3 
 4 HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
 5 
 6 if (httpRes.StatusCode==HttpStatusCode.Moved) 
 7 {
 8     // ToDo 
 9 }
10 
11 // 關閉響應
12 httpRes.Close();
註解

HttpStatusCode 枚舉包含的狀態代碼爲 HTTP 1.1 RFC 2616 中定義的值。包含的 HTTP 請求的狀態 HttpWebResponse.StatusCode 屬性。

若是HttpWebRequest.AllowAutoRedirect屬性是false,下面的枚舉值會致使引起異常:

    • Ambiguous
    • Found
    • MultipleChoices
    • Redirect
    • RedirectKeepVerb
    • RedirectMethod
    • SeeOther
    • TemporaryRedirect

 

相關文章
相關標籤/搜索