easy-okhttp 異步請求

2018-08-08 14:37 更新
異步請求不會阻塞當前線程(特別是網(wǎng)絡慢的時候),適用于對返回結(jié)果不關心或不需要立即知曉的情況下,比如推送、通知等。

異步請求只有在執(zhí)行網(wǎng)絡請求的時候有一點區(qū)別,其他地方和同步請求配置和操作都是一樣的。

String githubContent = HttpClient
            .get("https://www.github.com")
            .execute(new CallbackAdaptor<String>(){

                @Override
                public DataHandler<T> getDataHandler() {
                    return StringDataHandler.create();
                }

                @Override
                public void onSuccess(T data) {
                    //data就是經(jīng)過處理后的數(shù)據(jù),直接在這里寫自己的業(yè)務邏輯
                }
            });
CallbackAdaptor是Callback的默認實現(xiàn),一般推薦使用CallbackAdaptor,這樣你只需要關注的方法。下面著重介紹Callback接口定義。


Callback回調(diào)接口


Callback是回調(diào)定義接口,里面總共定義了6個函數(shù),每個函數(shù)被調(diào)用的順序不一樣。

  • onBefore() 第一被調(diào)用,主要在請求網(wǎng)絡之前,這個函數(shù)有返回值,如果返回false則阻止此次請求了;
  • postProgress() 第二被調(diào)用,上傳進度回調(diào)函數(shù)
  • onError() 第三被調(diào)用,當只有請求失敗時才會觸發(fā);
  • onComplete() 第四被調(diào)用,當請求接口完成后觸發(fā)該函數(shù);
  • onSuccess() 第五被調(diào)用,當請求接口成功(HTTP狀態(tài)碼為200)則會觸發(fā)該函數(shù), 該函數(shù)會依賴另外一個函數(shù)getDataHandler(),返回一個指定的數(shù)據(jù)處理器,處理原始數(shù)據(jù)。對于數(shù)據(jù)處理器前面已經(jīng)了解過了。

異步回調(diào)接口Callback總共定義了6個函數(shù),但是一般不會關心所有函數(shù)處理情況,所以提供了CallbackAdaptor空實現(xiàn)類,想要關注哪個函數(shù)的執(zhí)行結(jié)果,重載那個函數(shù)即可。


Callback回調(diào)接口

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號