使用RestSharp调用TLS 1.2服务器可在控制台应用程序中使用,而不能在Xamarin Forms中使用

时间:2018-09-25 15:12:09

标签: forms http ssl xamarin

我正在与使用双向TLS v1.2的服务器通信。我已经能够在c#控制台应用程序中发出此请求,但是当我将此确切代码复制到Xamarin表单时,我的RestClient给我一个例外:几秒钟后“对等连接重置”。

代码:

var client = new RestClient("https://api-sandbox.rabobank.nl/openapi/sandbox/payments/account-information/ais/v3/accounts");

        ServicePointManager.Expect100Continue = true;
        ServicePointManager.DefaultConnectionLimit = 9999;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

        client.ClientCertificates = new X509CertificateCollection() { certificate };
        client.Proxy = new WebProxy();

        var request = new RestRequest(Method.GET);
        var response = client.Execute(request);
        Console.WriteLine(response.StatusCode);
        Console.WriteLine(response.Content);

出于明显的原因,我无法共享我的API密钥等。这些是通过标头添加的,并已从代码段中删除。

我尝试过的事情:

  • 我检查了项目是否设置为使用TLS 1.2,iOS和Android都使用。

  • 我在模拟器和真实设备上尝试过

  • 我尝试使用this库,但是每当我尝试将证书添加到处理程序的clientcertificate列表时,都会引发NotImplementedException。

0 个答案:

没有答案