Xamarin/Mono TLS 异常
Xamarin/Mono TLS Exception
我正在组建一个 Xamarin Android 项目,并试图构建一个可以调用 API 的小型应用程序。 Xamarin 项目创建了我在另一个解决方案中拥有的 ApiWrapper class 的实例,并且 class 是进行 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.
这是我到目前为止尝试过的方法:
- 我已经尝试安装 ModernHttpClient 并将 NativeMessageHandler 传递到 HttpClient() 的构造函数中,但没有成功。
- 确保我的应用程序具有互联网权限
- 添加了一个自定义验证器 class returns 为真并传递给
ServicePointManager.ServerCertificateValidationCallback
- 运行
mozroots
和 cert-sync
尝试为网站提取正确的证书。
此外,需要说明的是,我有一个测试项目仅通过 .NET 的网络堆栈调用同一个 ApiWrapper class,并且它在加密方面没有问题并且工作正常。
我没主意了,在这里苦苦挣扎。任何建议都非常有帮助!谢谢。
我遇到了同样的问题。集成测试能够调用服务并通过,但 运行 来自 Android 模拟器的代码抛出了该错误。还尝试了您上面列出的所有步骤。
最终对我有用的是更改 Android 项目的设置。右键单击该项目,然后单击“属性”。转到 Android 选项并单击高级按钮。
设置..
HttpClient 实现 -> Android
SSL/TLS 实施 -> 本机 TLS 1.2+
我正在组建一个 Xamarin Android 项目,并试图构建一个可以调用 API 的小型应用程序。 Xamarin 项目创建了我在另一个解决方案中拥有的 ApiWrapper class 的实例,并且 class 是进行 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.
这是我到目前为止尝试过的方法:
- 我已经尝试安装 ModernHttpClient 并将 NativeMessageHandler 传递到 HttpClient() 的构造函数中,但没有成功。
- 确保我的应用程序具有互联网权限
- 添加了一个自定义验证器 class returns 为真并传递给
ServicePointManager.ServerCertificateValidationCallback
- 运行
mozroots
和cert-sync
尝试为网站提取正确的证书。
此外,需要说明的是,我有一个测试项目仅通过 .NET 的网络堆栈调用同一个 ApiWrapper class,并且它在加密方面没有问题并且工作正常。
我没主意了,在这里苦苦挣扎。任何建议都非常有帮助!谢谢。
我遇到了同样的问题。集成测试能够调用服务并通过,但 运行 来自 Android 模拟器的代码抛出了该错误。还尝试了您上面列出的所有步骤。
最终对我有用的是更改 Android 项目的设置。右键单击该项目,然后单击“属性”。转到 Android 选项并单击高级按钮。
设置..
HttpClient 实现 -> Android
SSL/TLS 实施 -> 本机 TLS 1.2+