一开始,我创建的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))
这样的代码运行起来就没有经常出现这个异常了。
标签:SocketTimeoutException,HTTP,connectionPool,connectTimeoutMillis,okhttp,TimeUnit, From: https://www.cnblogs.com/zhyp/p/17899753.html