Cómo leer el código html de una URL HTTPS

.net c# html html-agility-pack

Pregunta

Estoy tratando de leer el código fuente html de una URL https en c # con el siguiente código:

 WebClient webClient = new WebClient();
 string htmlString = w.DownloadString("https://www.targetUrl.com");

introduzca la descripción de la imagen aquí

esto no funciona para mí, ya que me codifico la cadena html. Intenté usar HtmlAgilityPack pero sin ayuda.

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);

Respuesta aceptada

Esa URL está devolviendo una cadena comprimida gzip. WebClient no admite esto de forma predeterminada, por lo que querrá ir a la clase HttpWebRequest subyacente. Copia flagrante de la respuesta al congelarse aquí - Descomprime automáticamente la respuesta de gzip a través de WebClient.DownloadData

class MyWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
        return request;
    }
}

Respuesta popular

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
WebClient webClient = new WebClient();
string htmlString = w.DownloadString(url);


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é