Comment lire les sources HTML à partir d'une URL HTTPS

.net c# html html-agility-pack

Question

J'essaie de lire le code source HTML d'une URL https en C # avec le code suivant:

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

entrez la description de l'image ici

cela ne fonctionne pas pour moi car je reçois une chaîne html codée. J'ai essayé d'utiliser HtmlAgilityPack mais sans aide.

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

Réponse acceptée

Cette URL renvoie une chaîne compressée par gzip. WebClient ne supporte pas cela par défaut, vous voudrez donc descendre à la classe sous-jacente HttpWebRequest . Arnaque flagrante de la réponse par feroze ici - Décompressez automatiquement la réponse gzip via 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;
    }
}

Réponse populaire

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



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