« Trop de redirections automatiques ont été tentées » message d'erreur lorsque vous utilisez un HttpWebRequest dans .NET

StackOverflow https://stackoverflow.com/questions/518181

Question

Je cherche à demander une page comme « http://www.google.com/?q = aléatoire » en utilisant la classe WebRequest dans vb.net. nous sommes derrière un pare-feu, donc nous devons authentifier nos demandes. Je l'ai obtenu passé la partie d'authentification en ajoutant mes lettres de créance. Mais une fois que cela fonctionne, il semble aller dans une boucle de redirection.

Quelqu'un at-il une des idées, des commentaires, suggetions pourquoi c'est? Est-ce que quelqu'un d'autre rencontré ce problème?

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()
Était-ce utile?

La solution

Assurez-vous que vous avez une configuration de conteneur de cookie.

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

Vous n'êtes probablement pas économiser les cookies et d'être pris dans une boucle de redirection.

Autres conseils

loHttp.AllowAutoRedirect = true

Au lieu de cela, vous devez utiliser

loHttp.AllowAutoRedirect = False

pour éviter toute erreur l'erreur

  

"TROP AUTOMATIQUE REACHEMINEMENT TENTATIVE ONT ÉTÉ"

Je traduis C # que Darryl a fourni à VB et inséré avant l'appel getResponse.

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

Peut-être, vous pouvez traiter individuellement pour chaque redirection par rattraper son retard Lieu de réponse et utiliser des cookies appropriés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top