gpt4 book ai didi

c# - Xamarin/Mono TLS 异常

转载 作者:行者123 更新时间:2023-11-30 23:11:19 24 4
gpt4 key购买 nike

我正在组建一个 Xamarin Android 项目,并尝试构建一个可以调用 API 的小型应用程序。 Xamarin 项目创建了我在另一个解决方案中拥有的 ApiWrapper 类的实例,该类是进行 Http 调用的原因(不确定这是否重要)。

我在运行时不断获取的堆栈跟踪粘贴在下面:

06-25 12:36:13.696 E/mono-rt ( 3365): [ERROR] FATAL UNHANDLED EXCEPTION: System.Net.Http.HttpRequestException: An error occurred while sending the request

System.Net.WebException: Error: SecureChannelFailure (The authentication or decryption has failed.)

System.IO.IOException: The authentication or decryption has failed.

System.IO.IOException: The authentication or decryption has failed.

Mono.Security.Protocol.Tls.TlsException: The authentication or decryption has failed.

这是我到目前为止尝试过的:

  1. 我已尝试安装 ModernHttpClient 并将 NativeMessageHandler 传递到 HttpClient() 的构造函数中,但没有成功。
  2. 确保我的应用程序具有互联网权限
  3. 添加了一个返回 true 并传递到 ServicePointManager.ServerCertificateValidationCallback
  4. 的自定义验证器类
  5. 同时运行 mozrootscert-sync 以尝试为站点提取正确的证书。

此外,需要说明的是,我有一个测试项目仅通过 .NET 的网络堆栈调用同一个 ApiWrapper 类,并且它在加密方面没有问题并且工作正常。

我没有想法,在这里苦苦挣扎。任何建议都非常有帮助!谢谢。

最佳答案

我遇到了同样的问题。集成测试能够调用该服务并通过,但从 Android 模拟器运行代码会抛出该错误。还尝试了您上面列出的所有步骤。

最终对我有用的是更改 Android 项目的设置。右键单击该项目,然后单击“属性”。转到 Android 选项并单击高级按钮。

设置..

HttpClient 实现 -> Android

SSL/TLS 实现 -> native TLS 1.2+

关于c# - Xamarin/Mono TLS 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com