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");
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.
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);
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;
}
}
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
WebClient webClient = new WebClient();
string htmlString = webClient.DownloadString(url);