&引用;尝试了太多的自动重定向”;在.NET中使用httpWebRequest时出现错误消息
我正在尝试使用vb.net中的webrequest类请求类似“”的页面。 我们在防火墙后面,所以我们必须验证我们的请求。 通过添加凭据,我已通过身份验证部分。 但一旦成功,它似乎进入了重定向循环 有人有什么想法、评论、建议吗?为什么? 还有其他人遇到过这个问题吗&引用;尝试了太多的自动重定向”;在.NET中使用httpWebRequest时出现错误消息,.net,vb.net,httpwebrequest,webrequest,.net,Vb.net,Httpwebrequest,Webrequest,我正在尝试使用vb.net中的webrequest类请求类似“”的页面。 我们在防火墙后面,所以我们必须验证我们的请求。 通过添加凭据,我已通过身份验证部分。 但一旦成功,它似乎进入了重定向循环 有人有什么想法、评论、建议吗?为什么? 还有其他人遇到过这个问题吗 Dim loHttp As HttpWebRequest = CType(WebRequest.Create(_url), HttpWebRequest) loHttp.Timeout = 10000 loHttp.Method =
Dim loHttp As HttpWebRequest = CType(WebRequest.Create(_url), HttpWebRequest)
loHttp.Timeout = 10000
loHttp.Method = "GET"
loHttp.KeepAlive = True
loHttp.AllowAutoRedirect = True
loHttp.PreAuthenticate = True
Dim _cred1 As NetworkCredential = ... //this is setup
//snip out this stuff
loHttp.Credentials = _cc
loWebResponse = loHttp.GetResponse()
确保您有cookie容器设置
CookieContainer cookieContainer = new CookieContainer();
loHttp.CookieContainer = cookieContainer;
您可能没有保存Cookie并陷入重定向循环。我翻译了Darryl提供给VB的C,并在getResponse调用之前插入了它
Dim cookieContainer As CookieContainer = New CookieContainer()
loHttp.CookieContainer = cookieContainer
loWebResponse = loHttp.GetResponse()
也许,您可以通过从响应中获取位置并使用合适的cookie来单独处理每个重定向
loHttp.AllowAutoRedirect = true
与此相反,您必须使用
loHttp.AllowAutoRedirect = False
要避免错误,请删除错误
“尝试了太多的自动重定向”
这让我免于数小时的痛苦和折磨!非常感谢这是不正确的。
HttpWebRequest.AllowAutoRedirect
属性的状态为:“如果希望请求自动跟随HTTP重定向头到达资源的新位置,请将AllowAutoRedirect
设置为true。跟随的最大重定向数由MaximumAutomaticRedirections
属性设置。”上面的链接是针对.NET 4.5的,但文档在返回到2.0的过程中都说了同样的话。在某些情况下,如果出现错误,您需要将其设置为“false”。这似乎“起作用”,因为它实际上不遵循自动重定向,只会在第一页停止。所以取决于你想发生什么,你将决定这个答案是否正确。它不会将您带到浏览器将带您到的同一位置。