【问题标题】:Is it possible to set network call timeout more than 60 seconds.是否可以将网络调用超时设置为 60 秒以上。
【发布时间】: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 是不可能的
  • @KaranMer :我知道如何更改请求持续时间,但我想知道将超时持续时间增加到 60 秒以上的可能性。

标签: android android-volley retrofit retrofit2


【解决方案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);

【讨论】:

    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 2011-02-15
    • 2023-03-30
    • 2019-03-02
    • 2012-02-29
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多