.NET C# 使用HttpClient時忽略HTTPS證書

寫了個爬蟲爬一個網站的數據,本來一直好好的,結果今天發現有一段時間爬不到數據了,一檢查發現他們的HTTPS證書過期了,導致拋異常。

於是,就想辦法繞過這個Https證書的限制,在網上搜了一下,基本都是Java、.NET Core的,搜到幾個說是.NET的,但實際都不可行,最後還是自己摸索和查看MSDN找到了解決辦法,特此記錄。

  1. 添加System.Net.Http.WebRequest的引用
  2. new一個WebRequestHandler對象
  3. 將WebRequestHandler對象的ServerCertificateValidationCallback設爲delegate { return true; };
  4. 使用該WebRequestHandler對象new HttpClient對象
  5. 使用該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");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章