Come leggere il codice sorgente HTML da un URL HTTPS

.net c# html html-agility-pack

Domanda

Sto cercando di leggere il codice sorgente HTML di un URL https in C # con il seguente codice:

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

inserisci la descrizione dell'immagine qui

questo non funziona per me quando ottengo la stringa html codificata. Ho provato a utilizzare HtmlAgilityPack ma senza alcun aiuto.

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

Risposta accettata

L'URL restituisce una stringa compressa gzip. WebClient non supporta questo per impostazione predefinita, quindi ti consigliamo di andare invece alla classe HttpWebRequest sottostante. Straordinaria ripescatura della risposta di feroze qui sopra - Decomprimi automaticamente la risposta gzip tramite 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;
    }
}

Risposta popolare

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


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché