.net HTTPWebRequest重定向失败

.net HTTPWebRequest重定向失败,.net,httpwebrequest,http-headers,.net,Httpwebrequest,Http Headers,我的代码试图通过外部进程导航提供给它的Url,但最近我在HTTPWebRequest重定向中发现了一个bug 案例中的URL为 我发现,当指定HTTP Referer时,此url在浏览器中成功导航,但.Net的WebRequest失败(不提供任何异常),即使指定了.Referer,如果启用了AutoRedirects,则失败,并出现MaxRedirect到达异常 根据MSDN 如果AllowAutoRedirect属性为true,则将请求重定向到其他站点时,会自动设置Referer属性 这是否意

我的代码试图通过外部进程导航提供给它的Url,但最近我在HTTPWebRequest重定向中发现了一个bug 案例中的URL为

我发现,当指定HTTP Referer时,此url在浏览器中成功导航,但.Net的WebRequest失败(不提供任何异常),即使指定了.Referer,如果启用了AutoRedirects,则失败,并出现MaxRedirect到达异常

根据MSDN

如果AllowAutoRedirect属性为true,则将请求重定向到其他站点时,会自动设置Referer属性

这是否意味着同一站点中的重定向处理方式不同。如果有人知道如何解决这个问题,请告诉我


提前谢谢

我认为这个问题的根源在内部

遵循您的链接(因此有一个stackoverflow的推荐人)会得到以下答案:

HTTP/1.1 302 Found
Date: Thu, 21 Apr 2011 07:28:03 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: 
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 117
注意空的
Location
标题-来自服务器的回复是重定向到。。。没什么

编辑:

似乎只有当您没有推荐人或非ask.bitauto.com推荐人时,才会显示空的重定向页面。将目标URL设置为referer将导致
200 OK
回答

编辑2:

空位置头的行为与此不符,而且似乎不同的web代理会在中对此作出反应


我认为最可靠的解决方案是在您的请求中指定。

根据我对HTTP协议的理解,空位置头意味着您被重定向到同一个页面,HTTPWebRequest也是如此,但在这种情况下它没有设置Referer头,这种情况会导致服务器一次又一次地做出相同的响应,从而导致MaximumAutomaticDirections。我找不到任何支持重定向行为的来源,编辑了答案以反映这一点。我想你是对的,我使用的是HTTPWebRequest的AutoRedirect属性,这导致了问题。在达到最大自动重定向后,我使用Referer进行手动重定向,该行为使HTTPWebRequest无法预测并导致程序崩溃。现在按照你的建议,我关掉了自动控制器,它工作正常。谢谢你的建议!