在.NET中使用httpWebRequest时“尝试了太多自动重定向”错误消息

时间:2009-02-05 22:04:46

标签: .net vb.net httpwebrequest webrequest

我正在尝试使用vb.net中的webrequest类请求“http://www.google.com/?q=random”这样的页面。 我们在防火墙后面,所以我们必须验证我们的请求。 我通过添加我的凭据已经通过了身份验证部分。 但是一旦它起作用,它似乎进入了一个重定向循环。

有没有人有这样的想法,评论和建议? 还有其他人遇到过这个问题吗?

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()

4 个答案:

答案 0 :(得分:42)

确保您已设置Cookie容器。

CookieContainer cookieContainer = new CookieContainer();
loHttp.CookieContainer = cookieContainer;

您可能没有保存Cookie并被重定向循环捕获。

答案 1 :(得分:8)

loHttp.AllowAutoRedirect = true

而不是这个,你必须使用

loHttp.AllowAutoRedirect = False

避免错误错误

  

“太多的自动重定向被瞄准”

答案 2 :(得分:2)

我将Darryl提供的C#翻译成VB并在getResponse调用之前插入它。

Dim cookieContainer As CookieContainer = New CookieContainer()
loHttp.CookieContainer = cookieContainer
loWebResponse = loHttp.GetResponse()

答案 3 :(得分:0)

也许,您可以通过从响应中获取位置来单独处理每个重定向,并使用合适的Cookie。