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

 

相关文章
相关标签/搜索