異步請求只有在執(zhí)行網(wǎng)絡(luò)請求的時候有一點區(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è)務(wù)邏輯 } });CallbackAdaptor是Callback的默認實現(xiàn),一般推薦使用CallbackAdaptor,這樣你只需要關(guān)注的方法。下面著重介紹Callback接口定義。
Callback
是回調(diào)定義接口,里面總共定義了6個函數(shù),每個函數(shù)被調(diào)用的順序不一樣。
onBefore()
第一被調(diào)用,主要在請求網(wǎng)絡(luò)之前,這個函數(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ù),但是一般不會關(guān)心所有函數(shù)處理情況,所以提供了CallbackAdaptor
空實現(xiàn)類,想要關(guān)注哪個函數(shù)的執(zhí)行結(jié)果,重載那個函數(shù)即可。
更多建議: