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

如何处理来自.net远程处理的http 302重定向?,.net,http,remoting,http-status-code-302,.net,Http,Remoting,Http Status Code 302,我需要能够区分http 302重定向和使用.net远程处理的代码 为了连接到适当的url,我们按顺序尝试它们,直到其中一个起作用。在大多数环境中,第一个url会正确失败,并出现System.Net.WebException状态为的异常 WebExceptionStatus.NameResolutionFailure。 但是,对于使用OpenDNS的客户,这将作为HTTP 302响应返回,重定向到他们的指南页面。由于我正在使用.net远程处理,因此将忽略重定向,并且我收到的错误是System.Ru

我需要能够区分http 302重定向和使用.net远程处理的代码

为了连接到适当的url,我们按顺序尝试它们,直到其中一个起作用。在大多数环境中,第一个url会正确失败,并出现System.Net.WebException状态为的异常 WebExceptionStatus.NameResolutionFailure。 但是,对于使用OpenDNS的客户,这将作为HTTP 302响应返回,重定向到他们的指南页面。由于我正在使用.net远程处理,因此将忽略重定向,并且我收到的错误是System.Runtime.Serialization.SerializationException,该异常只能通过其消息“解析完成前遇到的流结束”来区分

以下是opendns http响应: 找到HTTP/1.0 302 地点: 内容类型:text/html 内容长度:0 连接:关闭 日期:2009年5月28日星期四20:46:26 GMT
服务器:OpenDNS指南

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

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

更新:如果您使用的是
System.Net.Webclient
,则可以使用您可以使用其
ResponseHeaders
属性。net远程处理不会公开HttpWebRequest或WebClient或任何相关类。调用代码会看到一个代理对象,该对象看起来像服务器上正在调用的类型。(是的,我知道这是两年前的事了)