我有这个:
final OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(someUrl)
.build();
Response response = client.newCall(request).execute();
我看过https://github.com/square/okhttp/wiki/Recipes#timeouts
我尝试添加:
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
到OkHttpClient
构建器,但即使我将超时数设置为1秒,我也没有注意到任何差异。
有没有办法监听超时?如果超过超时值,我应该发生什么?
答案 0 :(得分:1)
如果请求超时,则会因IOException而失败。当您致电def get_values(key):
return {
1: (0, 8),
2: (7, 15),
3: (14, 22),
4: (21, 29)
5: (0, 32),
}[key]
try:
dayf, dayt = get_values(5)
except KeyError:
pass
或阅读回复正文时,就会发生这种情况。
答案 1 :(得分:0)
之前我也遇到过这个问题。我使用异步请求的onFailure()回调来解决问题。如果异步适合你试试。
https://github.com/square/okhttp/wiki/Recipes#asynchronous-get https://github.com/square/okhttp/blob/okhttp_25/okhttp/src/main/java/com/squareup/okhttp/Callback.java#L20-#L26