【问题标题】:How can I set connection timeout for OkHttpClient? 2017如何为 OkHttpClient 设置连接超时? 2017
【发布时间】:2017-06-18 23:11:10
【问题描述】:

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

我在android 中阅读了很多关于如何设置连接超时的帖子,但该帖子已有 4-7 年的历史,我认为我们都需要更新有关此主题的信息,因为这些方法已被弃用或不再存在。

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

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

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

【问题讨论】:

  • 如果您在 Android SDK 中使用 HttpClient API,请停止。这已被弃用并删除。使用其他东西(例如,OkHttp)。如果您使用的是适用于 Android 的独立 Apache HttpClient 库,则需要指定哪个版本,因为该 API 多年来一直在变化。
  • 我的错。我想写 okhttp 。我正在使用'com.squareup.okhttp3:okhttp:3.8.0'
  • 嗯,不过,你的问题都是关于 HttpClient 的。如果您实际上使用的是 OkHttp,here is how you configure timeouts.
  • 您能否将答案发布为回复,以便我投票?谢谢!

标签: android okhttp connection-timeout


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复!!
猜你喜欢
  • 2017-01-10
  • 2018-09-19
  • 1970-01-01
  • 2014-07-28
  • 2014-11-18
  • 2017-08-07
  • 1970-01-01
  • 2012-06-14
  • 2013-01-24
相关资源
最近更新 更多