Подтвердить что ты не робот

"слишком много автоматических перенаправлений было предпринято" сообщение об ошибке при использовании httpWebRequest в .NET

Я пытаюсь запросить страницу типа http://www.google.com/?q=random", используя класс webrequest в vb.net. мы за брандмауэром, поэтому мы должны аутентифицировать наши запросы. Я прошел мимо части аутентификации, добавив свои учетные данные. Но как только это работает, похоже, он переходит в цикл перенаправления.

Есть ли у кого-нибудь идеи, комментарии, предложения, почему это так? Кто-нибудь еще испытал эту проблему?

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

Ответ 1

Убедитесь, что у вас есть настройка контейнера cookie.

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

Вероятно, вы не сохраняете файлы cookie и попадаете в цикл перенаправления.

Ответ 2

loHttp.AllowAutoRedirect = true

Вместо этого вы должны использовать

loHttp.AllowAutoRedirect = False

чтобы избежать ошибки, ошибка

"СЛИШКОМ МНОГО АВТОМАТИЧЕСКОГО РЕДАКЦИИ БЫЛО ПОПЫТКАМ"

Ответ 3

Я перевел С#, который Darryl предоставил VB, и вставил его перед вызовом getResponse.

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

Ответ 4

Возможно, вы можете индивидуально обработать для каждого перенаправления, ухватив местоположение от ответа и использовать подходящие файлы cookie.