Ответ 1
Убедитесь, что у вас есть настройка контейнера cookie.
CookieContainer cookieContainer = new CookieContainer();
loHttp.CookieContainer = cookieContainer;
Вероятно, вы не сохраняете файлы cookie и попадаете в цикл перенаправления.
Я пытаюсь запросить страницу типа 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()
Убедитесь, что у вас есть настройка контейнера cookie.
CookieContainer cookieContainer = new CookieContainer();
loHttp.CookieContainer = cookieContainer;
Вероятно, вы не сохраняете файлы cookie и попадаете в цикл перенаправления.
loHttp.AllowAutoRedirect = true
Вместо этого вы должны использовать
loHttp.AllowAutoRedirect = False
чтобы избежать ошибки, ошибка
"СЛИШКОМ МНОГО АВТОМАТИЧЕСКОГО РЕДАКЦИИ БЫЛО ПОПЫТКАМ"
Я перевел С#, который Darryl предоставил VB, и вставил его перед вызовом getResponse.
Dim cookieContainer As CookieContainer = New CookieContainer()
loHttp.CookieContainer = cookieContainer
loWebResponse = loHttp.GetResponse()
Возможно, вы можете индивидуально обработать для каждого перенаправления, ухватив местоположение от ответа и использовать подходящие файлы cookie.