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

标签 c# http httpwebrequest http-status-codes system.net.webexception

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

例如,如果:

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

b) 有一个 WebExeption 抛出,它本身有一个响应对象,该对象也有一个 StatusCode(我假设它基于相同的 HttpStatusCode 枚举。

问题 1 - 在什么 StatusCode 将触发 WebException(并且您会在异常中获取详细信息)方面是否存在任何一致性,而哪些会毫无异常地返回,但您会在响应的 StatusCode 中找到结果对象?

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

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

  • 连接问题/网络服务器宕机 => 所以用户知道这一点

  • 服务器端错误(例如服务器存在但处理请求时出现问题 - 例如内容不存在) => 这样用户就可以向网站管理员提出问题

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

谢谢

最佳答案

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

关于C# HttpWebRequest.GetResponse - StatusCode 用法是如何处理非异常响应与 webexception 响应的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2182544/

相关文章:

c# - C# 比较中的 JSON 反序列化

C# vs VB.Net,Shadowing 和 [Overloading (without changing the arguments)] 有什么区别

c# - HttpWebRequest 强制新连接

c# - 重用 keep-alive HTTP web 请求对象

c# - 使用 Moq 验证方法调用

c# - 我如何设置分步流程

api - REST 风格的 API : Were to put the custom application errors?

android - 针对 Android 客户端请求优化 apache 和 mysql

Java okhttp 重定向计数和域证书中的问题

c# - 如何从 Windows Phone 应用程序发送带有代理地址的 HttpWebRequest