我需要能够区分http 302重定向和使用.net远程处理的代码 .
为了连接到相应的URL,我们按顺序尝试它们直到一个工作 . 在大多数环境中,第一个url正确地失败,并且System.Net.WebException状态为WebExceptionStatus.NameResolutionFailure . 对于使用OpenDNS的客户,然而这将作为HTTP 302响应重新定向到其“指南”页面 . 因为我正在使用.net远程处理,重定向被忽略,我收到的错误是一个System.Runtime.Serialization.SerializationException,它只能通过消息“在解析完成之前遇到的流结束”来区分 .
这是opendns http响应:HTTP / 1.0 302找到位置:http://guide.opendns.com/?url=demonstration.totallyinvalidexceptonmynetwork.com%2Fi%2Fdo%2Fnot%2Fexist.html内容类型:text / html内容长度:0连接:关闭日期:星期四,2009年5月28日20:46:26 GMT服务器:OpenDNS指南
1 回答
我假设发布请求您正在使用
HttpWebRequest
对象 . 然后你就可以像下面那样收到HttpWebResponse
对象的响应 . 然后你可以检查response.StatusCode
属性 . 如果它是302然后执行你的逻辑 .更新:如果您使用
System.Net.Webclient
,那么您可以使用它可以使用其ResponseHeaders
属性 . Here是你如何使用它 .