C# HTTP系列5 HttpWebResponse.StatusCode属性

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

HttpStatusCode 枚举
Accepted202

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

Ambiguous300

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

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

BadGateway502

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

BadRequest400

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

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

Conflict409

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

Continue100

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

Created201

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

ExpectationFailed417

等效于 HTTP 状态 417。 ExpectationFailed 指示服务器未能符合 Expect 标头中给定的预期值。

Forbidden403

等效于 HTTP 状态 403。 Forbidden 指示服务器拒绝满足请求。

Found302

等效于 HTTP 状态 302。 Found 指示请求的信息位于 Location 标头中指定的 URI 处。 

接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 原始请求方法为 POST 时,

重定向的请求将使用 GET 方法。 找到是的同义词重定向

GatewayTimeout504

等效于 HTTP 状态 504。 GatewayTimeout 指示中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。

Gone410

等效于 HTTP 状态 410。 Gone 指示请求的资源不再可用。

HttpVersionNotSupported505

等效于 HTTP 状态 505。 HttpVersionNotSupported指示服务器不支持请求的 HTTP 版本。

InternalServerError500

等效于 HTTP 状态 500。 InternalServerError 指示服务器上发生了一般错误。

LengthRequired411

等效于 HTTP 状态 411。 LengthRequired 指示缺少必需的 Content-length 标头。

MethodNotAllowed405

等效于 HTTP 状态 405。 MethodNotAllowed 指示请求的资源上不允许请求方法(POST 或 GET)。

Moved301

等效于 HTTP 状态 301。 Moved 指示请求的信息已移到 Location 头中指定的 URI 处。 

接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 原始请求方法为 POST 时,

重定向的请求将使用 GET 方法。 移动是的同义词MovedPermanently

MovedPermanently301

等效于 HTTP 状态 301。 MovedPermanently 指示请求的信息已移到 Location 头中指定的 URI 处。 

接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 MovedPermanently是的同义词Moved

MultipleChoices300

等效于 HTTP 状态 300。 MultipleChoices 指示请求的信息有多种表示形式。 默认操作是将此状态视为重定向,

并遵循与此响应关联的 Location 标头的内容。 MultipleChoices是的同义词不明确

NoContent204

等效于 HTTP 状态 204。 NoContent 指示已成功处理请求并且响应已被设定为无内容。

NonAuthoritativeInformation203

等效于 HTTP 状态 203。NonAuthoritativeInformation 指示返回的元信息来自缓存副本而不是原始服务器,

因此可能不正确。

NotAcceptable406

等效于 HTTP 状态 406。 NotAcceptable 指示客户端已用 Accept 标头指示将不接受资源的任何可用表示形式。

NotFound404

等效于 HTTP 状态 404。 NotFound 指示请求的资源不在服务器上。

NotImplemented501

等效于 HTTP 状态 501。 NotImplemented 指示服务器不支持请求的函数。

NotModified304

等效于 HTTP 状态 304。 NotModified 指示客户端的缓存副本是最新的。 未传输此资源的内容。

OK200

等效于 HTTP 状态 200。 OK 指示请求成功,且请求的信息包含在响应中。 这是最常接收的状态代码。

PartialContent206

等效于 HTTP 状态 206。 PartialContent 指示响应是包括字节范围的 GET 请求所请求的部分响应。

PaymentRequired402

等效于 HTTP 状态 402。 保留 PaymentRequired 以供将来使用。

PreconditionFailed412

等效于 HTTP 状态 412。 PreconditionFailed 指示一个条件设置为此请求失败,并且无法执行请求。

使用条件请求标头,如: If-match、 设置条件 If-None-匹配项,或如果-以未修改形式-自。

ProxyAuthenticationRequired407

等效于 HTTP 状态 407。ProxyAuthenticationRequired 指示请求的代理要求身份验证。 

Proxy-authenticate 标头包含如何执行身份验证的详细信息。

Redirect302

等效于 HTTP 状态 302。 Redirect 指示请求的信息位于 Location 标头中指定的 URI 处。

 接收到此状态时的默认操作为遵循与响应关联的 Location 标头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。 

重定向是的同义词找到

RedirectKeepVerb307

等效于 HTTP 状态 307。 RedirectKeepVerb 指示请求信息位于 Location 标头中指定的 URI 处。 

接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 RedirectKeepVerb是的同义词TemporaryRedirect

RedirectMethod303

等效于 HTTP 状态 303。 作为 POST 的结果,RedirectMethod 将客户端自动重定向到 Location 标头中指定的 URI。 

用 GET 生成对 Location 标头所指定的资源的请求。 RedirectMethod是的同义词SeeOther

RequestedRangeNotSatisfiable416

等效于 HTTP 状态 416。RequestedRangeNotSatisfiable 指示无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,

或因为范围的结尾在资源的结尾之后。

RequestEntityTooLarge413

等效于 HTTP 状态 413。 RequestEntityTooLarge 指示请求太大,服务器无法处理。

RequestTimeout408

等效于 HTTP 状态 408。 RequestTimeout 指示客户端没有在服务器期望请求的时间内发送请求。

RequestUriTooLong414

等效于 HTTP 状态 414。 RequestUriTooLong 指示 URI 太长。

ResetContent205

等效于 HTTP 状态 205。 ResetContent 指示客户端应重置(而非重新加载)当前资源。

SeeOther303

等效于 HTTP 状态 303。 作为 POST 的结果,SeeOther 将客户端自动重定向到 Location 标头中指定的 URI。

用 GET 生成对 Location 标头所指定的资源的请求。 SeeOther是的同义词RedirectMethod

ServiceUnavailable503

等效于 HTTP 状态 503。 ServiceUnavailable 指示服务器暂时不可用,通常是由于过多加载或维护。

SwitchingProtocols101

等效于 HTTP 状态 101。 SwitchingProtocols 指示正在更改协议版本或协议。

TemporaryRedirect307

等效于 HTTP 状态 307。 TemporaryRedirect 指示请求信息位于 Location 标头中指定的 URI 处。 

接收到此状态时的默认操作为遵循与响应关联的 Location 标头。 原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。 TemporaryRedirect是的同义词RedirectKeepVerb

Unauthorized401

等效于 HTTP 状态 401。 Unauthorized 指示请求的资源要求身份验证。 WWW-Authenticate 标头包含如何执行身份验证的详细信息。

UnsupportedMediaType415

等效于 HTTP 状态 415。 UnsupportedMediaType指示请求是不受支持的类型。

Unused306

等效于 HTTP 状态 306。 Unused 是未完全指定的 HTTP/1.1 规范的建议扩展。

UpgradeRequired426

等效于 HTTP 状态 426。 UpgradeRequired 指示客户端应切换为诸如 TLS/1.0 之类的其他协议。

UseProxy305

等效于 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

 

转载于:https://www.cnblogs.com/SavionZhang/p/11394494.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值