寫了個爬蟲爬一個網站的數據,本來一直好好的,結果今天發現有一段時間爬不到數據了,一檢查發現他們的HTTPS證書過期了,導致拋異常。
於是,就想辦法繞過這個Https證書的限制,在網上搜了一下,基本都是Java、.NET Core的,搜到幾個說是.NET的,但實際都不可行,最後還是自己摸索和查看MSDN找到了解決辦法,特此記錄。
- 添加System.Net.Http.WebRequest的引用
- new一個WebRequestHandler對象
- 將WebRequestHandler對象的ServerCertificateValidationCallback設爲delegate { return true; };
- 使用該WebRequestHandler對象new HttpClient對象
- 使用該HttpClient對象即可
相關代碼如下:
var handler = new WebRequestHandler();
handler.ServerCertificateValidationCallback = delegate { return true; };
var httpClient = new HttpClient(handler);
httpClient.BaseAddress = new Uri("https://www.baidu.com");
var response = await httpClient.GetAsync("https://www.baidu.com");