¿HtmlDocument.LoadHtml de WebResponse?

.net c# html html-agility-pack httpwebrequest

Pregunta

Intento extraer una imagen de un enlace publicado y la primera comprobación que hago es ver si el enlace es a una imagen simple como esta:

    HttpWebRequest request;
    WebResponse webresponse;

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

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

Si no se encuentra esto, quiero continuar con el paquete de agilidad HTML, pero para poder hacer eso necesito ejecutar:

    HttpWebRequest request;
    WebResponse webresponse;

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

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

El problema es que LoadHtml no encontrará ninguna fuente, incluso cuando estoy seguro de que hay un código HTML en la respuesta. Sospecho que la formación del HTML no está en el formato correcto?

Aquí es parte de lo que ReadToEnd generará:

    HttpWebRequest request;
    WebResponse webresponse;

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

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

Puedo ver que la cadena contiene algunos comandos de nueva línea (\ r \ n) si eso importa.

Mi objetivo es simple, para evitar descargar la página web más de una vez, de lo contrario, podría usar WebClient.DownloadString(url); Para descargarlo en un formato que yo sepa funciona.

Respuesta aceptada

Esto funcionó:

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);
}



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué