c# - Xamarin:java.security.cert.CertPathValidatorException:找不到证书路径的信任 anchor

标签 c# android xamarin ado.net

在 Xamarin 中。我一直在尝试在我的 Web API 和我的 Xamarin 项目之间进行通信。这是我的 Controller 的代码:

//  GET api/values
    public List<string> Get()
    {
        List<string> values = new List<string>();
        values.Add("Value 1");
        values.Add("Value 2");
        return values;
    }

这是我的 MainPage.xaml.cs

中的 GET 请求
    public async void BindToListView()
    {
        HttpClient client = new HttpClient();
        var response = await client.GetStringAsync("https://10.0.2.2:#####/api/Values");
        var posts = JsonConvert.DeserializeObject<List<Posts>>(response);
        lv.ItemsSource = posts;
    }

每当我尝试同时运行我的 Android 应用程序和我的 Web API 应用程序时。我不断收到此异常:

    Javax.Net.Ssl.SSLHandshakeException: 
'java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.'

我尝试将其粘贴到我的 MainActivity.cs 中,但仍然无法正常工作。

ServicePointManager.ServerCertificateValidationCallback += (o, cert, chain, errors) => true;

几个月来我一直有这个问题,这让我发疯了。我错过了什么吗?我是开发 Xamarin 应用程序的新手,这是一个我似乎无法解决的问题。

任何有关如何解决此问题的建议将不胜感激。感谢您花时间阅读本文。

最佳答案

//Use this, it worked for me. 

HttpClient client;

public class datastore {
   var httpClientHandler = new HttpClientHandler();
            
   httpClientHandler.ServerCertificateCustomValidationCallback = 
   (message, cert, chain, errors) => { return true; };

   client = new HttpClient(httpClientHandler);
}

//... use the client to make request. it will bypass 
//the ssl certificates verification. 

关于c# - Xamarin:java.security.cert.CertPathValidatorException:找不到证书路径的信任 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376095/

相关文章:

c# - .Net 控制台应用程序作为 CLI 命令

cordova - 华为移动服务支持哪些混合应用?

java - 当我加载更多数据时,如何防止 recyclerview 滚动开始

android - 如何在启动时启动应用程序而不显示设备公司名称?

android - Toast 未在 Android Q 中显示

javascript - XLabs.Forms.Controls.HybridWebView 不显示 html/js 警报

c# - 应用程序在 Release模式下崩溃,而不是在 Debug模式下崩溃 - Xamarin Forms

c# - 一次发送数千封电子邮件,陷阱/最佳方式?

c# - EditorFor 为 byte 和 short 呈现不同

c# - 无法调试使用并发异步/等待的程序