代码之家  ›  专栏  ›  技术社区  ›  Greg

C#HttpWebRequest.GetResponse文件-如何处理非异常与webexception响应的StatusCode使用情况?

  •  5
  • Greg  · 技术社区  · 15 年前

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

    例如,如果:

    -成功(如OK、Accepted等)

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

    问题2 -或者更具体地说,什么是psedoo代码(或C代码本身)来处理httpWebRequest.GetResponse文件调用以区分用户的响应类别:

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

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

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

    谢谢

    2 回复  |  直到 15 年前
        1
  •  4
  •   barc0de    15 年前

    根据我的经验,响应状态代码只返回200或0。其他任何东西都会通过WebException,包括代理错误,比如407或417。

        2
  •  4
  •   ata    15 年前

    每当web请求无法成功执行时,就会引发WebException。例如400和500系列响应。

    WebException有一个名为Status的属性,它将返回响应的实际状态,即500(内部服务器错误)。

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    一般来说:

    2xx系列代码=请求已成功接收、理解和接受。这些不是错误代码。例如200行

    或者“305使用代理”,根据您的说法,这会导致异常。

    4xx系列代码=客户端错误。这些可能导致异常。例如“400错误请求”或“401未授权”

    5xx系列代码=服务器错误。这些可能导致异常。例如“500内部服务器错误”或“504网关超时”