Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;尝试了太多的自动重定向”;在.NET中使用httpWebRequest时出现错误消息_.net_Vb.net_Httpwebrequest_Webrequest - Fatal编程技术网

&引用;尝试了太多的自动重定向”;在.NET中使用httpWebRequest时出现错误消息

&引用;尝试了太多的自动重定向”;在.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 =

我正在尝试使用vb.net中的webrequest类请求类似“”的页面。 我们在防火墙后面,所以我们必须验证我们的请求。 通过添加凭据,我已通过身份验证部分。 但一旦成功,它似乎进入了重定向循环

有人有什么想法、评论、建议吗?为什么? 还有其他人遇到过这个问题吗

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”。这似乎“起作用”,因为它实际上不遵循自动重定向,只会在第一页停止。所以取决于你想发生什么,你将决定这个答案是否正确。它不会将您带到浏览器将带您到的同一位置。