我的代码试图导航通过外部进程提供给它的网址,但最近我在HTTPWebRequest重定向中发现了一个错误,如果网址是http://ask.bitauto.com/TreeAsk/index.aspx的话
我发现当指定HTTP-Referer时,此url在浏览器中成功获取NAvigated,但.Net的WebRequest失败(没有提供任何异常),即使分配了.Refer,在AutoRedirects启用失败的情况下也会出现MaxRedirect reached异常
根据MSDN
如果AllowAutoRedirect属性为true,则在请求重定向到其他站点时会自动设置Referer属性。
这是否意味着对同一站点中的重定向进行不同的处理。如果有人知道如何解决这个问题,请让我知道。
提前感谢
发布于 2011-04-21 15:32:48
我认为这个问题的根源在于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标头-来自服务器的回复是重定向到...没什么。
编辑:
看起来只有当你没有推荐人或非ask.bitauto.com推荐人时,才会显示空的重定向页面。将目标URL设置为referrer会导致200 OK应答。
编辑2:
空位置标头的行为不符合RFC2616,而且在different way中似乎不同的web代理对此做出了反应。
我认为对你来说最健壮的解决方案是在你的请求中指定HTTPWebRequest.Referrer。
https://stackoverflow.com/questions/5740883
复制相似问题