我正在尝试使用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()
答案 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。