C#HttpWebRequest.GetResponse - 如何处理非异常与webexception响应的StatusCode用法?

Gre*_*reg 5 c# http httpwebrequest http-status-codes system.net.webexception

有人可以帮助清除HttpWebResponse和WebException中"StatusCode"属性的用法吗?

例如,似乎如果:

a)没有异常,那么HttpWebResponse将有一个StatusCode可以有一些值,表明两者: - 成功(例如OK,Accepted等) - 失败(例如UseProxy,RequestTimeout等)

b)有一个WebExeption throw,它本身有一个响应对象,它又有一个StatusCode(我假设它是基于相同的HttpStatusCode枚举).

问题1 - 在StatusCode将触发WebException(并且您在异常中获取详细信息)方面是否存在任何一致性,相比之下,没有异常会返回但是您会在StatusCode中找到结果响应对象?

问题2 - 或者更具体地说,尝试处理httpWebRequest.GetResponse调用的pseduo代码(或C#代码本身)是什么,以便您要区分用户的响应类别:

  • 代理设置/代理问题=>所以可以告诉用户修复代理设置

  • 连接问题/ web-server down =>所以用户意识到这一点

  • 服务器端错误(例如服务器在那里,但处理请求有问题 - 例如内容不在那里)=>所以用户可以提出网站管理员

  • 成功案例(我认为这不仅仅是OK)=> na(成功案例)

谢谢

小智 4

根据我的经验,响应状态代码仅返回 200 或 0。其他任何内容都通过 WebException 来实现,包括 407 或 417 等代理错误。