找不到证书路径的信任锚[Xamarin.Forms]

问题描述 投票:0回答:1

当我尝试使用Open VPN尝试POST到https API时遇到以下异常

注意:当我尝试在连接了Open VPN的平板电脑中使用摇摇欲坠访问API时,该API可以正常运行并且只是移动应用无法使用它。 ((在Xamarin应用程序中,我们得到了例外。

代码:

var uri = prepareLoginUri("/Login/Login");
var body = new { username, password };
var json = JsonConvert.SerializeObject(body);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var response = await _client.PostAsync(uri, content);

Exception:

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

为此异常找到了解决方案,但没有解决问题:

https://forums.xamarin.com/discussion/91782/trust-anchor-for-certification-path-not-found

根据此链接中的建议,我在MainActivity.cs中添加了以下代码:

HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };
_client = new HttpClient(clientHandler);

这解决了异常,但是我现在从API获得的响应是​​404未找到

StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent

但是大摇大摆,该API绝对可以正常工作。

[当尝试使用Open VPN POST到https API时遇到以下异常注意:当我尝试在连接Open VPN的平板电脑中使用swagger访问API时,API为...

c# xamarin xamarin.forms xamarin.android openvpn
1个回答
0
投票

[尝试在/的末尾放置一个斜杠(BaseAddress),并且您不得在相对URI的开头放置一个斜杠(/)。像:

© www.soinside.com 2019 - 2024. All rights reserved.