当前位置: 首页 > 知识库问答 >
问题:

如何为OKHttpClient设置连接超时?2017

殷浩慨
2023-03-14

很容易说它是重复的,但它不是。

我读过许多关于如何在android中设置连接超时的帖子,但是这些帖子已经有4-7年的历史了,我认为我们都需要更新这个主题,因为这些方法已经不被推荐或者不再存在了。

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

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

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

共有1个答案

长孙宜
2023-03-14

如果通过OKHttpClient.Builder创建OKHttpClient,则可以调用ConnectTimeout()ReadTimeout()WriteTimeout()方法来获取各种超时选项。

如果需要针对特定的HTTP请求重写它们,请在OKHttpClient上调用newbuilder()。这将为您提供一个OKHttpClient.builder,其设置与您最初使用的设置相同。您可以根据需要重写这些代码,并从新的构建器中创建临时的OKHttpClient,用于此一次性调用。

 类似资料:
  • 但我想要的是这样的

  • 我知道volley有一个重试策略,但我知道,这是针对套接字超时,而不是连接超时,Apache HttpClient有setConnectionTimeout和setSoTimeout方法,有人知道我是否要为volley framework设置连接超时吗。

  • 因为我计划从v.3升级httpclient依赖项。第1至第4节。5.13,但后来我意识到,许多功能已经改变,其中之一就是多线程HttpConnectionManager已经从最新版本中删除。当我搜索一个等价类时,stackoverflow HttpClient 4中的一篇文章——多线程HttpConnectionManager发生了什么事?,建议使用PoolightTPClientConnecti

  • 我有一个TcpClient,用于将数据发送到远程计算机上的侦听器。远程计算机有时打开,有时关闭。因此,TCP客户端将经常无法连接。我希望TcpClient在一秒钟后超时,这样当它无法连接到远程计算机时就不会花费太多时间。目前,我对TcpClient使用以下代码: 这对于处理任务来说已经足够好了。如果可以,它会发送它,如果无法连接到远程计算机,它会捕获异常。然而,当它无法连接时,抛出异常需要10到1

  • 问题内容: 我正在使用PDO从MySQL服务器获取数据。我注意到的是:如果MySQL服务器不可用,则此代码返回异常 实际上 需要(相对)长的时间: 如果使用MySQL,则发生异常(SQLSTATE [HY000] [2003]无法在…上连接到MySQL服务器)仅需2分钟以上,而在PostgreSQL上则需要30秒(SQLSTATE [08006] [7]超时已过期) )。 我尝试使用PDO ::

  • 问题内容: 我正在尝试使用Java设置网络超时我的Oracle数据库连接。但是,我遇到了错误。以下是示例代码及其各自的例外。 我得到的异常是: 我相信这与抽象方法有关(请参见AbstractMethodError)。可能导致此错误的原因是我只实现了我认为已经在Java中定义的方法,因此不拒绝编译。 注意:如果有抽象方法,Java不允许编译具体的类。 问题答案: 是JDBC 4.1中引入的,而JDB