在 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超时设置
如何在 Android 的 OkHttp 拦截器中处理 IOExceptions?