我试图谷歌找到相关问题,但没有运气。我知道如何设置connectionTimeout,readTimeout,writeTimeout但是我想为这些值设置整个超时,因为有时这三者之间的值会有所不同。
类似的是这个
How to set connection timeout with OkHttp
但我想要的就是那样的
builder.allTimeout(50, TimeUnit.SECONDS)
答案 0 :(得分:0)
OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
.readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS);
答案 1 :(得分:0)
在我的情况下,问题是我有SSL的实现,我正在创建自定义的OkHttpClient,它覆盖了我的进一步实现。我设置超时,我无法改变它。我已经忘了它并花了很多时间来找到简单的问题。看看你自己的代码,看看你是否没有其他的OkHttpClient实现覆盖你的超时。
答案 2 :(得分:0)
我找不到任何可以为所有人设置超时的方法,因为您可以在文档中查看它。
http://square.github.io/okhttp/3.x/okhttp/
此外,我找不到你为什么要实现这一目标的原因。
尝试以下可解决您问题的解决方法。
初始化一个const值
final int ALL_TIMEOUT = 30;
new OkHttpClient().newBuilder()
.readTimeout(ALL_TIMEOUT, TimeUnit.SECONDS)
.connectTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);
.writeTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);
OR
创建一个初始化构建器的包装器,只为所有超时传递一个值,包装器将自动初始化所有超时并为您提供构建器对象。