HtmlDocument.LoadHtml de WebResponse?

.net c# html html-agility-pack httpwebrequest

Question

J'essaie d'extraire l'image d'un lien posté et la première vérification que je fais est de voir si le lien est une image simple comme ceci:

    HttpWebRequest request;
    WebResponse webresponse;

    request = (HttpWebRequest)HttpWebRequest.Create(url);

     webresponse = request.GetResponse();
     if (webresponse.ContentType.StartsWith("image/"))
       ...

Si ce n'est pas trouvé, je veux continuer avec le HTML Agility Pack, mais pour pouvoir le faire, j'ai besoin d'exécuter:

    HttpWebRequest request;
    WebResponse webresponse;

    request = (HttpWebRequest)HttpWebRequest.Create(url);

     webresponse = request.GetResponse();
     if (webresponse.ContentType.StartsWith("image/"))
       ...

Le problème est que LoadHtml ne trouvera aucune source même quand je suis sûr qu'il y a du code HTML dans la réponse. Je soupçonne que la formation du HTML n'est pas au format correct?

Voici une partie de ce que ReadToEnd va générer:

    HttpWebRequest request;
    WebResponse webresponse;

    request = (HttpWebRequest)HttpWebRequest.Create(url);

     webresponse = request.GetResponse();
     if (webresponse.ContentType.StartsWith("image/"))
       ...

Je peux voir que la chaîne contient des commandes newline (\ r \ n) si cela compte?

Mon objectif est simple: éviter de télécharger la page Web plus d'une fois, sinon je pourrais utiliser WebClient.DownloadString(url); pour le télécharger dans un format qui, je le sais, fonctionne.

Réponse acceptée

Cela a fonctionné:

request = (HttpWebRequest)HttpWebRequest.Create(url);
webresponse = (HttpWebResponse)request.GetResponse();
if (webresponse.ContentType.StartsWith("image/"))
{...}
if (webresponse.ContentType.StartsWith("text/html"))
{
     var resultStream = webresponse.GetResponseStream();
     doc.Load(resultStream);
}



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi