zoukankan      html  css  js  c++  java
  • Retrofit2.0 设置 连接超时

    Retrofit2.0 这个网络请求框架使用了很久了,最近一次出现一个小插曲。

    有一个接口,返回的数据量因为业务的原因 会返回很大的数据量,此时网络不大好的情况下,会出现请求失败的情况

    也就是回调了 onFaileure()方法,测试一下,大概都在10秒就会回调这个方法。

    去后台验证,发现数据请求成功,获取成功,也就是不是数据的问题,那问题就在于请求的数据量过大导致请求没有10秒内处理成功的话就会请求失败。

    解决办法就是给请求框架设置一个连接超时时间

       // Retrofit 网络数据请求
        public static RetrofitAPI Retrofit() {
            if (retrofitAPI == null) {
                retrofitAPI = new Retrofit.Builder()
                        .baseUrl(ApkManager.baseUrl)
                        .addConverterFactory(GsonConverterFactory.create())
                        .client(genericClient())
                        .build()
                        .create(RetrofitAPI.class);
            }
            return retrofitAPI;
        }
    
    
        public static String date = "000000"; //记录版本发布时间
    
        public static OkHttpClient genericClient() {
            OkHttpClient httpClient = new OkHttpClient.Builder()
                    .addInterceptor(new Interceptor() {
                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = chain.request()
                                    .newBuilder()
                                    .addHeader("User-Agent", "xxxx/xxxx/"+date)
                                    .build();
                            return chain.proceed(request);
                        }
                    }).connectTimeout(30, TimeUnit.SECONDS).      // 设置连接超时时间
                    readTimeout(30, TimeUnit.SECONDS).
                    writeTimeout(30, TimeUnit.SECONDS).build(); 
    
            return httpClient;
        }
  • 相关阅读:
    oracle-高级查询
    java-集合框架
    java-String-StringBuffer
    ROS消息, 服务, 主题, 订阅 5
    ROS消息, 服务, 主题, 订阅 4
    ROS消息, 服务, 主题, 订阅 3
    ROS消息, 服务, 主题, 订阅 2
    ROS消息, 服务, 主题, 订阅 1
    可交互的Marker
    RVIZ建Maker
  • 原文地址:https://www.cnblogs.com/xqxacm/p/9930445.html
Copyright © 2011-2022 走看看