首页 文章

如何处理来自.net远程处理的http 302重定向?

提问于
浏览
0

我需要能够区分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 回答

  • 0

    我假设发布请求您正在使用 HttpWebRequest 对象 . 然后你就可以像下面那样收到 HttpWebResponse 对象的响应 . 然后你可以检查 response.StatusCode 属性 . 如果它是302然后执行你的逻辑 .

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    if (response.StatusCode = HttpStatusCode.Found)
    {
       //your code here
    }
    

    更新:如果您使用 System.Net.Webclient ,那么您可以使用它可以使用其 ResponseHeaders 属性 . Here是你如何使用它 .

相关问题