OkHttps 取消請求的4種方式

2020-04-29 09:36 更新

  在 OkHttps 里取消請求共有 4 種 方式可選:

1、使用HttpCall#cancel()取消單個(gè)請求(適用于異步請求)

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()取消單個(gè)請求(適用于所有請求,since v1.0.4)

HttpTask<?> task = http.async("/users")
        .setOnResponse((HttpResult result) -> {
            // 響應(yīng)回調(diào)
        });


task.get(); // 發(fā)起 GET 請求


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

3、使用HTTP#cancel(String tag)按標(biāo)簽批量取消請求(適用于所有請求)

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 標(biāo)簽將以追加模式添加,等效于 setTag("B.C")
        .get();

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


int count = http.cancel("B");     //(2)(3)(4)被取消(取消標(biāo)簽包含"B"的任務(wù))


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

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

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

如果覺得 OkHttps 還不錯(cuò),就去點(diǎn)個(gè) Star 吧,項(xiàng)目地址:


官方網(wǎng)站:http://okhttps.ejlchina.com/

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號