gpt4 book ai didi

android - 如何禁用与 OkHttp 的一个连接的重试?

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:48 26 4
gpt4 key购买 nike

我正在使用 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

Most applications won't want to disable retry globally. Instead, use clone() to get an OkHttpClient for a specific, non-idempotent request, then configure that client with the setting.

我想禁用此调用的重试的原因是,如果它被我的服务器处理两次,它可能具有破坏性:

https://github.com/square/okhttp/pull/1259#issuecomment-68430264

谢谢

最佳答案

是的,这是正确的方法。

顺便说一句,如果你不介意,你可以写得简单一点

mMyGlobalClient = new OkHttpClient();

....

public void makeConnection(...) {

OkHttpClient client = null;
if (disableRetries) {
client = mMyGlobalClient.clone();
client.setRetryOnConnectionFailure(false);
} else {
client = mMyGlobalClient;
}

client.newCall(...);
}

关于android - 如何禁用与 OkHttp 的一个连接的重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com