如何为 OkHttpClient 设置连接超时? 2017年

How can I set connection timeout for OkHttpClient? 2017

很容易说它是重复的,但事实并非如此。

我读了很多 post 关于如何在 android 中设置连接超时的内容,但是 post 已经有 4-7 年的历史了,我认为我们都需要对此进行更新主题,因为这些方法已弃用或不再存在。

所以问题是在等待服务器响应时如何设置连接超时?

final Response response = httpClient.newCall(request).execute();

if (response.isSuccessful()) {
                          //success
} else {
       //unsuccessful
}

如果您通过 OkHttpClient.Builder 创建 OkHttpClient,您可以调用各种超时选项的 there are connectTimeout(), readTimeout(), and writeTimeout() methods

如果您需要为特定的 HTTP 请求覆盖它们,请在您的 OkHttpClient 上调用 newBuilder()。这会为您提供一个 OkHttpClient.Builder,其设置与您最初使用的设置相同。 You can override those as needed,并从新 Builder 创建一个临时 OkHttpClient,将其用于此一次性调用。