okhttp经常出现SocketTimeoutException
一开始,我创建的okhttpclient的方式:
val clientBuilder = new OkHttpClient.Builder()
.readTimeout(readTimeoutMillis, TimeUnit.MILLISECONDS)
.writeTimeout(writeTimeoutMillis, TimeUnit.MILLISECONDS)
.connectTimeout(connectTimeoutMillis, TimeUnit.MILLISECONDS)
.retryOnConnectionFailure(true)
改善的方法就是加多下面两行:
.connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS));
.protocols(listOf(Protocol.HTTP_1_1))
最后的代码如下
val clientBuilder = new OkHttpClient.Builder()
.readTimeout(readTimeoutMillis, TimeUnit.MILLISECONDS)
.writeTimeout(writeTimeoutMillis, TimeUnit.MILLISECONDS)
.connectTimeout(connectTimeoutMillis, TimeUnit.MILLISECONDS)
.retryOnConnectionFailure(true)
.connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS));
.protocols(listOf(Protocol.HTTP_1_1))
这样的代码运行起来就没有经常出现这个异常了。
posted on 2023-12-13 19:18 zyp_java_net 阅读(504) 评论(0) 编辑 收藏 举报