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

时间:2009-05-28 21:49:07

标签: .net http remoting http-status-code-302

我需要能够将http 302重定向与使用.net远程处理的代码区分开来。

为了连接到相应的网址,我们按顺序尝试,直到有人工作。在大多数环境中,第一个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     服务器:OpenDNS指南

1 个答案:

答案 0 :(得分:0)

我假设要发布您使用HttpWebRequest对象的请求。然后你可以在HttpWebResponse对象中收到响应,如下图所示。 然后,您可以检查response.StatusCode属性。如果它是302,那么执行你的逻辑。

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

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