【发布时间】:2015-10-15 18:54:06
【问题描述】:
我正在使用 OkHttp 并希望禁用特定 api 调用的连接重试。这是正确的做法吗?:
mMyGlobalClient = new OkHttpClient();
....
public void makeConnection(...) {
OkHttpClient client = null;
if (disableRetries) {
OkHttpClient clone = mMyGlobalClient.clone();
clone.setRetryOnConnectionFailure(false);
client = clone;
} else {
client = mMyGlobalClient;
}
client.newCall(...);
}
这个想法来自这篇文章:
https://github.com/square/okhttp/pull/1259#issue-53157152
大多数应用程序不希望全局禁用重试。相反,使用 clone() 为特定的非幂等请求获取 OkHttpClient, 然后使用该设置配置该客户端。
我想禁用重试这个调用的原因是因为如果它被我的服务器处理两次,它可能是破坏性的:
https://github.com/square/okhttp/pull/1259#issuecomment-68430264
谢谢
【问题讨论】: