OVH Cloud OVH Cloud

HttpWebResponse et chemins absolus

1 réponse
Avatar
fmeriot
Je souhaite r=E9cup=E9rer le contenu d'une page html acc=E9ssible sur mon
r=E9seau interne via http. HttpWebRequest et son compl=E9ment
HttpWebResponse me semblent tout indiqu=E9s pour faire =E7a. En gros,
j'utilise ce petit bout de code :

//Je cr=E9e une requ=E8te vers mon url
HttpWebRequest HttpWRequest =3D
(HttpWebRequest)WebRequest.Create(TextBox1.Text);

/Je r=E9cup=E8re la r=E9ponse
HttpWResponse =3D (HttpWebResponse)HttpWRequest.GetResponse();

//J'initialise un stream =E0 partir de cette r=E9ponse
StreamReader sr =3D new StreamReader(HttpWResponse.GetResponseStream());

//Et je r=E9cup=E8re le contenu du fichier
string content =3D sr.ReadToEnd();

.=2E.

Tout =E7a marche tr=E8s bien. Le seul pb est que le fichier source
contient des chemins relatifs vers des images et lorsque j'affiche le
contenu, les images n'apparaissent pas.

Qd je fais "clic-droit" sur l'image j'ai un truc du genre
"http://localhost/images/toto.gif" et forcemment =E7a ne marche pas. Je
souhaiterais que mon HttpWebRequest resolve les url des images afin que
je puisse les afficher. Est-ce possible?

Merci

1 réponse

Avatar
Paul Bacelar
Le plus simple est d'ajouter une balise <base href="..."> dans l'en-tête de
votre page HTML récupéré.

--
Paul Bacelar

wrote in message
news:
Je souhaite récupérer le contenu d'une page html accéssible sur mon
réseau interne via http. HttpWebRequest et son complément
HttpWebResponse me semblent tout indiqués pour faire ça. En gros,
j'utilise ce petit bout de code :

//Je crée une requète vers mon url
HttpWebRequest HttpWRequest (HttpWebRequest)WebRequest.Create(TextBox1.Text);

/Je récupère la réponse
HttpWResponse = (HttpWebResponse)HttpWRequest.GetResponse();

//J'initialise un stream à partir de cette réponse
StreamReader sr = new StreamReader(HttpWResponse.GetResponseStream());

//Et je récupère le contenu du fichier
string content = sr.ReadToEnd();

...

Tout ça marche très bien. Le seul pb est que le fichier source
contient des chemins relatifs vers des images et lorsque j'affiche le
contenu, les images n'apparaissent pas.

Qd je fais "clic-droit" sur l'image j'ai un truc du genre
"http://localhost/images/toto.gif" et forcemment ça ne marche pas. Je
souhaiterais que mon HttpWebRequest resolve les url des images afin que
je puisse les afficher. Est-ce possible?

Merci