我正在尝试使用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
答案 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 请求必须同时执行!
确保您的证书不是自签名!!!