当前位置: 移动技术网 > 移动技术>移动开发>Android > Retrofit2.0 设置 连接超时

Retrofit2.0 设置 连接超时

2018年11月09日  | 移动技术网移动技术  | 我要评论

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", "magikare/therapist/"+date)
                                .build();
                        return chain.proceed(request);
                    }
                }).connecttimeout(30, timeunit.seconds).      // 设置连接超时时间
                readtimeout(30, timeunit.seconds).
                writetimeout(30, timeunit.seconds).build(); 

        return httpclient;
    }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网