問題描述
最近用 HttpClient 模擬請求去讀取一張圖片,結果發現一直被拒絕錯誤信息如下圖:
查找原因:
通過多方瞭解是 SSL 協議問題造成的,但是發現 .net framework 4.0 只有 Tls1.0 版本,試了
SslProtocols = System.Security.Authentication.SslProtocols.Tls
依然無法解決,因爲對方服務器用的是 Tls1.2 協議,恰好 .net framework 4.0 中枚舉類(SslProtocols)沒有 Tls1.2協議,如下圖:
解決方法:
方法一
修改項目爲 .net framework 4.0 以上版本 或是 .net core 版本均提供了 Tls1.2 版本的枚舉信息。
方法二
依然使用 .net framework 4.0 的情況下可以用如下代碼方式即可解決;
SslProtocols = (System.Security.Authentication.SslProtocols)3072
方法二說明,因爲在高版本中Tls1.2對應的值類型數值是 3072 所以利用類型轉換的方式強制賦值一個版本代碼即可使用Tls1.2版本的加密協議。
說明
官方枚舉類對象說明地址 .net framework 4.0 版本,更高版本