在 OkHTTP 中处理超时

Posted

技术标签:

【中文标题】在 OkHTTP 中处理超时【英文标题】:Handle timeout in OkHTTP 【发布时间】:2017-03-02 08:00:07 【问题描述】:

如何在 OkHTTP 中捕获超时?是在 onFailure 方法中“调用”的吗?

我想处理互联网连接不良的情况。如果超时,我必须启用一些按钮以允许用户重试。

// Get a handler that can be used to post to the main thread
    client.newCall(request).enqueue(new Callback() 
        @Override
        public void onFailure(Call call, IOException e) 
            hideDialog();
            e.printStackTrace();

            // handle timeouts here, enable buttons...
        

【问题讨论】:

【参考方案1】:

您可以增加连接超时和响应您的请求。使用以下代码,

client.setConnectTimeout(15, TimeUnit.SECONDS); // connect timeout
client.setReadTimeout(15, TimeUnit.SECONDS);    // socket timeout

【讨论】:

可以增加超时时间,将15改为no。您想要的秒数,您也可以像上面一样 setWriteTimeout()。 这不是解决方案。问题是关于如何catch OkHttp 抛出的异常。这是没有实现的。

以上是关于在 OkHTTP 中处理超时的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot Java后端实现okhttp3超时设置

在 Okhttp 中处理身份验证

如何在 Android 的 OkHttp 拦截器中处理 IOExceptions?

如何使用 OkHttp 在 Android 上实现 cookie 处理?

OkHttp/Retrofit 默认超时

android okhttp超时怎么办