J'essaye d'établir une connexion à un serveur qui envoie l'erreur 401 d'authentification pour toutes mes demandes avec la réponse html normale. par exemple. Cependant, je veux aussi lire la réponse HTML qui est envoyée pour que je puisse l'analyser. Un exemple d'échange d'en-tête capturé à l'aide de LiveHTTPHeaders: Clairement, content-length est différent de zéro. Firefox montre que c'est javascript.Obtenez le contenu de la réponse avec StatusCode 401
https://172.31.1.251:1003/fgtauth?73e285357b2dc5cc
Request:
GET /fgtauth?73e285357b2dc5cc HTTP/1.1
Host: 172.31.1.251:1003
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Response:
HTTP/1.x 401 Unauthorized
WWW-Authenticate: Fortigate
Content-Length: 1091
Connection: Keep-Alive
Cache-Control: no-cache
Content-Type: text/html
À ce stade, un formulaire s'ouvre dans firefox qui me demande d'entrer mon nom d'utilisateur et mot de passe.
https://172.31.1.251:1003/
Request:
POST/HTTP/1.1
Host: 172.31.1.251:1003
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://172.31.1.251:1003/
Content-Type: application/x-www-form-urlencoded
Content-Length: 93
magic=73e285357b2dc5cc&username=uuxx&password=xxuu&4Tredir=http%3A%2F%2Fwww.google.com%2F
Response:
HTTP/1.x 401 Unauthorized
WWW-Authenticate: Fortigate
Content-Length: 924
Connection: Keep-Alive
Cache-Control: no-cache
Content-Type: text/html
À ce stade, je suis redirigé vers une autre URL. Cependant, le problème que j'ai est comment obtenir le contenu de la longueur 924 qui est envoyé avec le 401 Non autorisé, parce que ce contenu m'aidera à faire ce que je veux faire plus loin. Mais la ligne même:
WebResponse loginResponse = loginRequest.GetResponse();
déclenche une exception.
Je serai reconnaissant pour toutes les suggestions pour m'aider à accéder au contenu réel.
Merci.
-t-il vraiment revenir "HTTP/1.x"? C'est illégal. – EricLaw