我的代码试图通过外部进程导航提供给它的Url,但最近我在HTTPWebRequest重定向中发现了一个错误 案例中的网址为http://ask.bitauto.com/TreeAsk/index.aspx
我发现这个url在指定HTTP-Referer但是.Net的WebRequest失败(没有提供任何异常)时成功在浏览器中获得NAvigated,即使分配了.Refer,如果AutoRedirects Enabled失败,MaxRedirect达到异常< / p>
根据MSDN
“如果AllowAutoRedirect属性为true,则在将请求重定向到另一个站点时会自动设置Referer属性。”
这是否意味着在同一网站中的重定向处理方式不同。如果有人知道如何解决这个问题,请告诉我。
先谢谢
答案 0 :(得分:1)
我认为这个问题的根源在http://ask.bitauto.com/TreeAsk/index.aspx之内。
在你的链接(因此有一个引用者到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
标题 - 来自服务器的回复是重定向到......没有。
修改强>
如果您没有referrer或nonask.bitauto.com引荐来源,似乎只会显示空重定向页面。将目标网址设置为引荐来源会产生200 OK
答案。
编辑2:
空的Location标头行为不符合RFC2616,似乎不同的网络代理在different way中对此做出反应。
我认为最强大的解决方案是在您的请求中指定HTTPWebRequest.Referrer。