[英]Which specific status codes cause a WebException to be thrown by HttpWebRequest.GetResponse()?
我已经在寻找一些关于此的明确文件,但没有找到任何运气。
对于哪些HTTP响应状态代码, HttpWebRequest.GetResponse()
在执行类似POST的WebException
后会生成WebException
?
具体来说,它WebException
为状态200 OK
以外的任何其他内容生成WebException
? 或者它只会生成一个WebException
,例如WebException
和500(为了参数)?
我想知道,因为我正在与之通信的服务器定义除HTTP 200 OK
之外的任何其他内容作为错误条件返回。 我可以依赖为200以外的任何其他东西生成WebException
吗?
我目前已编写代码来检查每次返回状态代码并确保它是200 OK
。 如果不是,它将采取适当的行动 - 但是那个代码和我希望清理的WebException
的catch块之间有很多重复。
任何与文档相关的链接都将非常受欢迎。
在响应和捕获并检查WebExceptions之后结束执行显式检查; 导致一些重复的代码,但如果状态为非200,是否总是会发生WebException没有确定的答案。
我认为它会,但这听起来像是一个冒险的假设。 首先, MSDN文档清楚地表明GetResponse
将抛出除WebException
之外的异常。 但是,我可以从经验中明确地说,“304 Not-Modified”响应将作为WebException
抛出。
所有这些谈话都散发出一股狡猾的Code Smell; 不要使用异常来控制执行流程。 您最好适当地处理异常,然后显式检查StatusCode
属性的允许值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.