代码之家  ›  专栏  ›  技术社区  ›  dev90

是否可以将网络呼叫超时设置为60秒以上。

  •  1
  • dev90  · 技术社区  · 7 年前

    我有一些网络呼叫需要一分钟以上才能响应,所以我想将请求超时设置为180秒。

    我尝试了这段代码,但是看起来60秒后它取消了请求,并且没有读取timeout属性。

    这是我的密码。

                jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                        (int) TimeUnit.SECONDS.toMillis(185),
                        DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   asif.ibtihaj    7 年前

    改装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);