C# HTTP系列5 HttpWebResponse.StatusCode属性

HttpWebResponse.StatusCode 属性获取响应的状态。对应 HttpStatusCode 枚举值之一。

HttpStatusCode 枚举
Accepted 202

等效于 HTTP 状态 202。 Accepted 指示已接受请求做进一步处理。

Ambiguous 300

等效于 HTTP 状态 300。 Ambiguous 指示请求的信息有多种表示形式。 

默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 标头的内容。不明确是的同义词MultipleChoices

BadGateway 502

等效于 HTTP 状态 502。 BadGateway 指示中间代理服务器从另一代理或原始服务器接收到错误响应。

BadRequest 400

等效于 HTTP 状态 400。 BadRequest 指示服务器未能识别请求。 如果没有其他适用的错误,

或者不知道准确的错误或错误没有自己的错误代码,则发送 BadRequest

Conflict 409

等效于 HTTP 状态 409。 Conflict 指示由于服务器上的冲突而未能执行请求。

Continue 100

等效于 HTTP 状态 100。 Continue 指示客户端可能继续其请求。

Created 201

等效于 HTTP 状态 201。 Created 指示请求导致在响应被发送前创建新资源。

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

 

posted @ 2019-08-28 10:43  张传宁  阅读(2659)  评论(0编辑  收藏  举报
页脚 HTML 代码