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

如何在改型库中设置超时?

酆乐湛
2023-03-14

我这样设置改型:

RestAdapter restAdapter = new RestAdapter.Builder()
    .setServer(BuildConfig.BASE_URL)
    .setConverter(new GsonConverter(gson))
    .build();

如何设置超时?

共有1个答案

司徒耀
2023-03-14

您可以在基础HTTP客户端上设置超时。如果不指定客户端,Retrofit将创建一个具有默认连接和读取超时的客户端。要设置自己的超时,需要配置自己的客户端并将其提供给restadapter.builder

一种选择是使用OkHttp客户机,也来自Square。

1.添加库依赖项

compile 'com.squareup.okhttp:okhttp:x.x.x'

例如,如果您想设置60秒的超时时间,那么对于版本2之前的Registfit和版本3之前的Okhttp可以这样做(对于较新的版本,请参见编辑):

public RestAdapter providesRestAdapter(Gson gson) {
    final OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setReadTimeout(60, TimeUnit.SECONDS);
    okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS);

    return new RestAdapter.Builder()
        .setEndpoint(BuildConfig.BASE_URL)
        .setConverter(new GsonConverter(gson))
        .setClient(new OkClient(okHttpClient))
        .build();
}

编辑1

对于3.x.x以来的okhttp版本,必须以以下方式设置依赖项:

compile 'com.squareup.okhttp3:okhttp:x.x.x'
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
        .readTimeout(60, TimeUnit.SECONDS)
        .connectTimeout(60, TimeUnit.SECONDS)
        .build();

编辑2

2.x.x以来的改型版本也使用构建器模式,因此将上面的返回块更改为:

return new Retrofit.Builder()
    .baseUrl(BuildConfig.BASE_URL)
    .addConverterFactory(GsonConverterFactory.create())
    .client(okHttpClient)
    .build();

如果使用类似于我的ProvidesRestAdapter方法的代码,则将方法返回类型更改为referfit。

okHttpClient.setReadTimeout(1, TimeUnit.MINUTES);
okHttpClient.setConnectTimeout(1, TimeUnit.MINUTES);
 类似资料:
  • 问题内容: 我在我的应用程序中使用Retrofit库,我想将超时设置为60秒。改装有某种方法可以做到这一点吗? 我以这种方式设置Retrofit: 如何设置超时时间? 问题答案: 您可以在基础HTTP客户端上设置超时。如果未指定客户端,则Retrofit将使用默认的连接和读取超时创建一个客户端。要设置自己的超时时间,您需要配置自己的客户端并将其提供给。 一种选择是使用也是来自Square 的OkH

  • 问题内容: 我org.springframework.ws.client.core.WebServiceTemplate用于拨打Web服务。如何为通话配置超时。 问题答案: 如果你使用的是Spring Webservices 2.1.0版本,则可以使用HttpComponentsMessageSender设置超时。 Spring不推荐使用CommonsHttpMessageSender,因此不再推

  • 我正在尝试在我的WebClient上设置超时,以下是当前代码: 我需要添加超时和池策略,我在想这样的事情: 但是我不知道如何在我的webclient中设置httpClient

  • 但我想要的是这样的

  • 问题内容: 我创建了以下函数来检查连接状态: 当我关闭服务器以测试执行情况时,会在网上等待很长时间 有谁知道如何设置超时以避免等待太久? 问题答案: 在我的示例中,设置了两个超时。连接超时抛出,套接字超时。 如果要设置任何现有HTTPClient的参数(例如或,则可以使用函数。