我在我的应用程序中使用 Retrofit 库,我想设置 60 秒的超时。 Retrofit 有办法做到这一点吗?
我这样设置改造:
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(BuildConfig.BASE_URL)
.setConverter(new GsonConverter(gson))
.build();
如何设置超时?
原文由 androidevil 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以在底层 HTTP 客户端上设置超时。如果您不指定客户端,Retrofit 将创建一个具有默认连接和读取超时的客户端。要设置自己的超时,您需要配置自己的客户端并将其提供给
RestAdapter.Builder
。一个选项是使用同样来自 Square 的 OkHttp 客户端。
1.添加库依赖
在 build.gradle 中,包含以下行:
其中
x.x.x
是所需的库版本。2.设置客户端
例如,如果您想设置 60 秒的超时,请在版本 2 之前的 Retrofit 和版本 3 之前的 Okhttp 执行此操作(对于 较新的版本,请参阅编辑):
编辑 1
对于自
3.x.x
以来的 okhttp 版本,您必须以这种方式设置依赖项:并使用构建器模式设置客户端:
超时 中的更多信息
编辑 2
自
2.x.x
以来的改造版本也使用构建器模式,因此将上面的返回块更改为:如果使用像我的
providesRestAdapter
方法这样的代码,则将方法返回类型更改为 Retrofit 。Retrofit 2 中的更多信息 — 从 1.9 开始的升级指南
ps:如果你的minSdkVersion大于8,可以使用
TimeUnit.MINUTES
:有关单位的更多详细信息,请参阅 TimeUnit 。