Skip to content

超时设置

liujingxing edited this page Dec 28, 2019 · 9 revisions

超时设置

1、设置全局超时

RxHttp内部默认的读、写、连接超时时间均为10s,如需修改,请自定义OkHttpClient对象,如下:

//设置读、写、连接超时时间为15s
OkHttpClient client = new OkHttpClient.Builder()
    .connectTimeout(15, TimeUnit.SECONDS)
    .readTimeout(15, TimeUnit.SECONDS)
    .writeTimeout(15, TimeUnit.SECONDS)
    .build();
RxHttp.init(client);

2、为单个请求设置超时

为单个请求设置超时,使用的是RxJava的timeout(long timeout, TimeUnit timeUnit)方法,如下:

RxHttp.get("/service/...")
    .asString()
    .timeout(5, TimeUnit.SECONDS)//设置总超时时间为5s
    .as(RxLife.asOnMain(this))  //感知生命周期,并在主线程回调
    .subscribe(pageList -> {
        //成功回调
    }, (OnError) error -> {
        //失败回调
    });

注:这里设置的总超时时间要小于全局读、写、连接超时时间之和,否则无效

Clone this wiki locally