我试着在谷歌上找到相关的问题,但没有成功。我知道如何设置connectionTimeout、readTimeout、writeTimeout,但我想为这些值设置整个超时值,因为有时这三个值之间的值是不同的。
类似的就是这个
How to set connection timeout with OkHttp
但是我想要的是类似的东西。
builder.allTimeout(50, TimeUnit.SECONDS)发布于 2018-04-10 15:19:31
我找不到任何可以为所有人设置超时的方法,你可以在文档中查看它。
http://square.github.io/okhttp/3.x/okhttp/
此外,我找不到你为什么想要做到这一点的原因。
尝试下面的解决方法,可能会解决您的问题。
初始化常量值
final int ALL_TIMEOUT = 30;
new OkHttpClient().newBuilder()
.readTimeout(ALL_TIMEOUT, TimeUnit.SECONDS)
.connectTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);
.writeTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);或
创建一个包装器,它将初始化构建器,并只传递所有超时的值,包装器将自身初始化所有超时并提供构建器对象。
发布于 2018-04-10 14:54:55
OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
.readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS);发布于 2018-04-10 15:01:31
在我的例子中,问题是我有一个SSL的实现,并且我创建的自定义OkHttpClient覆盖了我进一步的实现。我正在设置超时,但我无法更改它。我已经忘记了这一点,花了很多时间来找出这个简单的问题。看一看你自己的代码,并检查你是否有其他的OkHttpClient实现覆盖了你的超时。
https://stackoverflow.com/questions/49744667
复制相似问题