是否可以将网络调用超时设置为 60 秒以上。
Posted
技术标签:
【中文标题】是否可以将网络调用超时设置为 60 秒以上。【英文标题】:Is it possible to set network call timeout more than 60 seconds. 【发布时间】:2019-04-28 21:56:57 【问题描述】:我有一些网络调用可能需要一分钟以上才能响应,所以我想将请求超时设置为 180 秒。
我尝试了这段代码,但看起来 60 秒后它取消了请求并且不读取超时属性。
这是我的代码。
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
(int) TimeUnit.SECONDS.toMillis(185),
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
【问题讨论】:
是使用改造 2.0 @android 团队,所以volley
是不可能的
Change Volley timeout duration的可能重复
@KaranMer :我知道如何更改请求持续时间,但我想知道将超时持续时间增加到 60 秒以上的可能性。
【参考方案1】:
改造 2 是可能的。试试下面的代码
int timeOut = 3 * 60; // duration in seconds
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(timeOut, TimeUnit.SECONDS)
.writeTimeout(timeOut, TimeUnit.SECONDS)
.readTimeout(timeOut, TimeUnit.SECONDS)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("your netwrok url")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
YourRetrofitInterface service = retrofit.create(YourRetrofitInterface.class);
【讨论】:
以上是关于是否可以将网络调用超时设置为 60 秒以上。的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking - 等待 60 秒后超时间隔与预期不同