IE或c#寫的客戶端,調用WebService是,默認使用TLS 1.1協議。如果服務器關閉了TLS1.1,使用TLS1.2時,客戶端必須增加1.2的語法,否則會出現錯誤:
System.Net.Sockets.SocketException: 遠程主機強迫關閉了一個現有的連接
System.Net.WebException: 基礎連接已經關閉: 發送時發生錯誤。
解決方法:
客戶端語言
|
版本
|
類庫
|
是否支持
|
兼容方案
|
---|---|---|---|---|
Java | 1.6.115之前 | 否 | 第三方支持包 | |
1.6.115之后 | 是 | 啟動jvm 添加參數-Dhttps.protocols=TLSv1.1,TLSv1.2 | ||
1.7 | 是 | 啟動jvm 添加參數-Dhttps.protocols=TLSv1.1,TLSv1.2 | ||
1.8 | 是 | 默認支持 | ||
Nodejs | 各個版本 | 是 | 默認支持 | |
c#,asp.net | 4.0-4.4 | 是 | 在發送HTTP請求前加入下行代碼 using System.Net; ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072; |
|
4.5 | 是 | 如果是4.5以上版本可以直接使用 using System.Net; |
||
Python | 2.7-3 | 是 | 默認支持 | |
curl | 7.19.7 | 是 | 默認支持 | |
Golang | 1.7.4 | net/http | 是 | 默認支持 |
Ruby | ||||
php | php5.6 | file_get_contents | 是 | |
http\client | 否 | |||
curl | 是 | |||
php5.3.29 | file_get_contents | 是 | ||
http\client | 否 | |||
curl | 是 |
源自https://blog.csdn.net/yanghaitian/article/details/77498872