Сообщение об ошибке «слишком много автоматических перенаправлений» при использовании httpWebRequest в .NET - PullRequest
19 голосов
/ 06 февраля 2009

Я пытаюсь запросить страницу типа "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()

Ответы [ 4 ]

42 голосов
/ 06 февраля 2009

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

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

Возможно, вы не сохраняете куки и не попадаете в цикл перенаправления.

8 голосов
/ 01 ноября 2012
loHttp.AllowAutoRedirect = true

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

loHttp.AllowAutoRedirect = False

во избежание ошибки ошибка

"СЛИШКОМ МНОГО АВТОМАТИЧЕСКОГО НАПРАВЛЕНИЯ ПЫТАЛИСЬ"

2 голосов
/ 06 февраля 2009

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

Dim cookieContainer As CookieContainer = New CookieContainer()
loHttp.CookieContainer = cookieContainer
loWebResponse = loHttp.GetResponse()
0 голосов
/ 04 марта 2012

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

...