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/
以上内容是否对您有帮助:
更多建议: