Http 請求 由於遠程方已關閉傳輸流,身份驗證失敗。錯誤的解決辦法

問題描述

最近用 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 版本更高版本

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