gpt4 book ai didi

android - Android 4.4 及更低版本上的 SSLHandshakeException

转载 作者:IT老高 更新时间:2023-10-28 23:34:49 29 4
gpt4 key购买 nike

我想通过 POST 方法连接 Paypal Rest API 时遇到问题。当我不使用modernhttpclient 时出现错误

The authentication or decryption has failed. 

但是当我使用 modernhttpclient 时,它可以在 Android API 23(Marshmallow)中运行,而当我在 Android API 19(设备)和 Android API 16(模拟器)中测试时出现错误

ex {Javax.Net.Ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=…} Javax.Net.Ssl.SSLHandshakeException

根据ssl handshake exception android我需要使用自定义套接字工厂。但是如何在 HttpClient 或modernHttpClient 中实现呢?

最佳答案

不确定我是否可以完全回答您的问题,但我会尝试一下:

如果您分析 Paypal REST API 端点,例如使用 SSL Labs 像这样 https://www.ssllabs.com/ssltest/analyze.html?d=api.sandbox.paypal.com&hideResults=on ,你看他们只支持 TLS 1.2 协议(protocol)。

现在 Android 从 API 级别 16 开始支持此功能,您可以在此处查看 https://developer.android.com/reference/javax/net/ssl/SSLSocket.html ,但默认情况下它是禁用的,只有在 API 级别 20+ 时才启用它。

在 Xamarin 论坛中,有人发布了一个解决方案,通过派生 ModernHttpClient 并添加改进的 SSL 套接字工厂,为具有 16 到 19 级 API 级别的 Android 启用 TLS 1.2:https://forums.xamarin.com/discussion/63005/modernhttpclient-tls-1-2-android-api-19

这应该可以解决您使用这些 Android 版本的问题,但它不会帮助您使用 Android 4.1 之前的版本。

关于android - Android 4.4 及更低版本上的 SSLHandshakeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222696/

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