栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

改造不适用于特定版本的android

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

改造不适用于特定版本的android

它显示为

java.net.SocketTimeoutException
,起初建议提高客户端的连接超时值,正如在此答案中所解释的-
但在查看…的当前源代码时,
okhttp3.internal.platform.AndroidPlatform
这提示不兼容的协议。

服务器的SSL证书支持

TLS1.0
,这对于Android 4.x来说是必需的(它们没有问题);问题在于,当前版本的
OkHttp3
不再支持
TLS1.0
,因此握手将永远不会发生(这就是为什么它会引发误导
SocketTimeoutException
而不是
SSLHandshakeException
)的原因。


使用时

OkHttp3
3.12.x
,默认配置仍应支持它
MODERN_TLS
-

但是可以指示

OkHttp3
3.13.x
使用配置
COMPATIBLE_TLS
代替:

List tlsSpecs = Arrays.asList(ConnectionSpec.MODERN_TLS);if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {    tlsSpecs = Arrays.asList(ConnectionSpec.COMPATIBLE_TLS);}OkHttpClient client = new OkHttpClient.Builder()    .connectionSpecs(tlsSpecs)    .build();

还必须将其设置为以下客户端

Retrofit

Retrofit retrofit = new Retrofit.Builder()    .baseUrl(Api.base_URL)    .addConverterFactory(GsonConverterFactory.create())    .setClient(client)    .build();

有关每个版本的可用协议支持,请参阅TLS配置历史记录

OkHttp3
。看起来,
3.12.x
甚至已经支持了
TLS1.3
,因为将来Android需要它
Q
。它甚至可能不会被要求下级
OkHttp3
,因为
MODERN_TLS
3.12.x
仍然支持
TLSv1
,而在
3.13.x
它已提前转移到
COMPATIBLE_TLS
;
仍然不确定
3.14.x

即使使用最新版本的

OkHttp3
,也可能仍可以将所需的
TLS1.0
协议重新添加到中
ConnectionSpec.COMPATIBLE_TLS
,因为这是一种
ArrayList
方法
.add()
-不做任何保证,不会再有不兼容的情况。
3.12.x
可能仍然是支持Android4.x及更高版本的最佳选择,甚至可能会有一些新功能的后继端口。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号