0

J'utilise un WebRequest pour lire un site HTML. Le serveur semble rediriger ma demande.WebRequest - Empêcher la redirection

Mon code est similaire à ce qui suit:

String URI = "http://www.foo.com/bar/index.html" 
    WebRequest req = WebRequest.Create(URI); 
    WebResponse resp = req.GetResponse(); 
    StreamReader sr = new StreamReader(resp.GetResponseStream()); 
    String returnedContent = sr.ReadToEnd(); 

Quand je vérifie le contenu de l'returnedContent contient le contenu d'une redirection comme « http://www.foo.com/FOO_BAR/index. html ". Je suis sûr que mon URL demandée existe car elle fait partie de la réponse reçue (en tant que IFrame).

Y at-il un moyen d'empêcher l'WebResponse à redirigée et obtenir le contenu de l'URL demandée?

MISE À JOUR

Réglage req.AllowAutoRedirect = false conduit à un code d'état 302 Found, mais ne délivre pas le contenu acutal.

Quelques détails: Mon URL demandé était http://www.foo.com/bar/index.html le contenu que je reçois est situé dans http://www.foo.com/FOO_BAR/index.html

La réponse ressemble à ceci:

<body> 
    <div> 
     <iframe src="/foo/index.html"></iframe> 
    </div> 
</body> 
+1

départ http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.allowautoredi rect.aspx – Matthew

Répondre

5

Vous pouvez utiliser HttpWebRequest « s AllowAutoRedirect property:

… 
var req = (HttpWebRequest)WebRequest.Create(URI); 
req.AllowAutoRedirect = false; 
… 
+0

Je reçois un code Repsonse "302 Found" au lieu du contenu - une idée? – Jaster

+0

@Jaster: Oui, c'est le code de redirection. Si vous ne voulez pas être redirigé vers le contenu, alors où * do * vous vous attendez à trouver le contenu? Etes-vous sûr que l'URL du '