我的本地和其他服務器用同一段代碼都可以訪問:
原代碼:
RestClient client = new RestClient(url);
client.Timeout = -1;
RestRequest request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer " + access_token);
request.AddHeader("Content-Type", "application/json");
CommanFunction.WriteLog2("UploadData_Error.log", "params2:" + json2);
request.AddParameter("application/json", json2, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var text = response.Content;
?返回值是空,statuscode 值是0
原因:
應該是我的本機啟用了TLS1.2支持,而服務器上沒有啟用TLS1.2的支持,所以出現同樣的代碼本機沒問題,而服務器上沒法使用。
改后代碼:
RestClient client = new RestClient(url);
client.Timeout = -1;
RestRequest request = new RestRequest(Method.POST);--添加的代碼
System.Net.ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;--request.AddHeader("Authorization", "Bearer " + access_token);
request.AddHeader("Content-Type", "application/json");
CommanFunction.WriteLog2("UploadData_Error.log", "params2:" + json2);
request.AddParameter("application/json", json2, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var text = response.Content;
增加的代碼:
System.Net.ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErrors) => true;
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;