Mos*_*atz 5 ssl android okhttp tls1.2 retrofit2
我正在使用改造进行 REST API 调用,并且选择仅支持 Android 5.0 及更高版本。
由于这些 Android 版本支持 TLSv1.2,因此我将服务器设置为仅使用 TLSv1.2。当我在 Nexus 5x(Android 版本 7.1 和 8.0)和 Nexus 5(Android 版本 6.0)上进行测试时,一切都按预期运行。但是,当我在 Samsung Galaxy S6 Edge 上进行测试时,除非启用 TLSv1.1,否则该应用程序无法连接到服务器。
我知道 S6 Edge 支持 TLSv1.2,因为当我使用javax.net.ssl.HttpsURLConnectionTLS 版本手动设置为 1.2(使用SSLContext.getInstance("TLSv1.2")等)建立 HTTPS 连接时,它会按预期工作。
我查看了 OkHttp 代码(Retrofit 实际使用它来进行 API 调用),但我找不到它在哪里选择要使用的版本。
为什么只有 Samsung 设备不默认在 Retrofit/OkHttp 中使用 TLSv1.2?我如何强制它这样做?
注意:这个问题并不是询问如何在较旧的 Android 版本中启用 TLSv1.2 支持,该问题已在 StackOverflow 上多次得到解答。只是问为什么默认情况下此功能在某些 Android 6.0 手机上有效,而在其他手机上无效。
| 归档时间: |
|
| 查看次数: |
3518 次 |
| 最近记录: |