首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在OkHttpClient中设置整个超时时间?

如何在OkHttpClient中设置整个超时时间?
EN

Stack Overflow用户
提问于 2018-04-10 11:07:04
回答 3查看 92关注 0票数 1

我试着在谷歌上找到相关的问题,但没有成功。我知道如何设置connectionTimeout、readTimeout、writeTimeout,但我想为这些值设置整个超时值,因为有时这三个值之间的值是不同的。

类似的就是这个

How to set connection timeout with OkHttp

但是我想要的是类似的东西。

代码语言:javascript
运行
复制
builder.allTimeout(50, TimeUnit.SECONDS)
EN

回答 3

Stack Overflow用户

发布于 2018-04-10 15:19:31

我找不到任何可以为所有人设置超时的方法,你可以在文档中查看它。

http://square.github.io/okhttp/3.x/okhttp/

此外,我找不到你为什么想要做到这一点的原因。

尝试下面的解决方法,可能会解决您的问题。

初始化常量值

代码语言:javascript
运行
复制
final int ALL_TIMEOUT = 30;

new OkHttpClient().newBuilder() 
    .readTimeout(ALL_TIMEOUT, TimeUnit.SECONDS)
    .connectTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);
    .writeTimeout(ALL_TIMEOUT, TimeUnit.SECONDS);

创建一个包装器,它将初始化构建器,并只传递所有超时的值,包装器将自身初始化所有超时并提供构建器对象。

票数 1
EN

Stack Overflow用户

发布于 2018-04-10 14:54:55

代码语言:javascript
运行
复制
OkHttpClient.Builder builder = new OkHttpClient().newBuilder() 
    .readTimeout(30, TimeUnit.SECONDS)
    .connectTimeout(30, TimeUnit.SECONDS);
票数 0
EN

Stack Overflow用户

发布于 2018-04-10 15:01:31

在我的例子中,问题是我有一个SSL的实现,并且我创建的自定义OkHttpClient覆盖了我进一步的实现。我正在设置超时,但我无法更改它。我已经忘记了这一点,花了很多时间来找出这个简单的问题。看一看你自己的代码,并检查你是否有其他的OkHttpClient实现覆盖了你的超时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49744667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档