前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Retrofit2.0 设置 连接超时

Retrofit2.0 设置 连接超时

作者头像
听着music睡
发布2018-12-10 09:57:45
3K0
发布2018-12-10 09:57:45
举报
文章被收录于专栏:Android干货

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

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

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

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

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

代码语言:javascript
复制
   // 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", "Magikare/Therapist/"+date)
                                .build();
                        return chain.proceed(request);
                    }
                }).connectTimeout(30, TimeUnit.SECONDS).      // 设置连接超时时间
                readTimeout(30, TimeUnit.SECONDS).
                writeTimeout(30, TimeUnit.SECONDS).build(); 

        return httpClient;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档