다음 코드를 사용하여 C #에서 https url의 html 소스 코드를 읽으려고합니다.
WebClient webClient = new WebClient();
string htmlString = w.DownloadString("https://www.targetUrl.com");
이것은 내가 인코딩 된 HTML 문자열을 얻을로 나를 위해 작동하지 않습니다. 나는 HtmlAgilityPack을 사용했지만 아무런 도움없이 시도했다.
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);
해당 URL은 gzip으로 압축 된 문자열을 반환합니다. WebClient
는 기본적으로이 기능을 지원하지 않으므로 대신 기본 HttpWebRequest
클래스로 이동하는 것이 좋습니다. 뻔뻔스럽게 여기에서 feroze로 답을 찢어 버리십시오. - WebClient.DownloadData를 통해 gzip 응답을 자동으로 압축 해제 하십시오.
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);