RestSharp请求中止-无法创建SSL / TLS安全通道

时间:2018-10-10 06:32:55

标签: c# asp.net ssl restsharp

我正在尝试使用RestSharp通过以下代码在本地计算机上测试API调用...

preg_replace('/(?<=\d)-(?=\d)/', '', $string)

var client = new RestClient("https://[API URL]"); var request = new RestRequest( Method.POST); request.AddParameter("session", this, ParameterType.RequestBody); IRestResponse<SessionOut> response = client.Execute<SessionOut>(request); return response.Data.session.id; 中,我收到一条错误消息,告诉我该请求已中止,因为它“无法创建SSL / TLS安全通道”。

这是否意味着我需要尝试设置https://localhost而不是http://localhost才能在https://地址处调用API?

更新

根据下面的@Shai_Aharoni的回答,我已将代码更新为以下代码。但是,我仍然遇到相同的错误。

response

3 个答案:

答案 0 :(得分:2)

尝试将其添加到您的代码中:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

相关资源:

答案 1 :(得分:1)

好吧...在调用HTTPS终结点之前,需要完成一些步骤。

1)确保您的服务器支持HTTPS端点(即:URL https://[APIURL]可以访问。

2)在执行HTTPS调用的计算机上安装了有效的服务器(api服务器)证书。

3)将证书添加到RestSharp客户端。类似于这样的东西:

string pathToYourClientCert = "cer/cert.cer";
client.ClientCertificates.Add(new X509Certificate(pathToYourClientCert));

希望这对您有帮助...

答案 2 :(得分:1)

请按照以下步骤操作: https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/http-stack?tabs=macos

还要将此添加到 MainActivity.cs -> OnCreate -> 加载应用程序之前的代码中:

ServicePointManager.SecurityProtocol |= SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

为了在 Xamarin Forms 中工作,我的 API 请求必须同时执行!

确保您的证书不是自签名!!!