OkHttps 取消请求的4种方式

2020-04-29 09:36 更新

  在 OkHttps 里取消请求共有 4 种 方式可选:

1、使用HttpCall#cancel()取消单个请求(适用于异步请求)

HttpCall call = http.async("/users/1").get();


System.out.println(call.isCanceled());     // false


boolean success = call.cancel();           // 取消请求


System.out.println(success);               // true
System.out.println(call.isCanceled());     // true

2、使用HttpTask#cancel()取消单个请求(适用于所有请求,since v1.0.4)

HttpTask<?> task = http.async("/users")
        .setOnResponse((HttpResult result) -> {
            // 响应回调
        });


task.get(); // 发起 GET 请求


// 取消请求,并返回是否取消成功
boolean canceled = task.cancel();   

3、使用HTTP#cancel(String tag)按标签批量取消请求(适用于所有请求)

http.async("/users")    //(1)
        .setTag("A")
        .get();

        
http.async("/users")    //(2)
        .setTag("A.B")
        .get();

        
http.async("/users")    //(3)
        .setTag("B")
        .get();

        
http.async("/users")    //(4)
        .setTag("B")
        .setTag("C")    // 从 v1.0.4 标签将以追加模式添加,等效于 setTag("B.C")
        .get();

        
http.async("/users")    //(5)
        .setTag("C")
        .get();


int count = http.cancel("B");     //(2)(3)(4)被取消(取消标签包含"B"的任务)


System.out.println(count);        // 输出 3

4、 使用HTTP#cancelAll()取消所有请求(适用于所有请求)(since v1.0.2)

http.cancelAll();   // 取消所有请求

如果觉得 OkHttps 还不错,就去点个 Star 吧,项目地址:


官方网站:http://okhttps.ejlchina.com/

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号