異步方式發起Http請求,可以使用匿名回調函數處理網絡應答;
在UI主線程之外的工作線程發起Http請求;
通過使用線程池解決了資源併發的效率問題;
通過使用RequestParams類,可完成GET/POST的參數構建;
支持文件的分段下載功能;
支持上傳JSON數據流;
對重定向循環、重定向相對路徑異常進行了處理
代碼體積小,全部功能只佔90kb;
專門針對移動網絡的不穩定性,對請求重發進行了優化,實現了自動智能處理;
傳輸時支持數據壓縮,可自動對應答進行gzip解壓處理;
使用BinaryHttpResponseHandler,可進行較底層的tcp/ip協議數據通信;
JsonHttpResponseHandler內嵌JSON語法分析功能,可完成JSON數據解析;
FileAsyncHttpResponseHandler可直接將應答保存到本地文件中;
支持cookie的持久化,可使用App的SharedPreferences保存cookie信息;
通過BaseJsonHttpResponseHandler可與Jackson JSON, Gson等第三方JSON框架庫集成;
SaxAsyncHttpResponseHandler支持SAX語法分析
除了UTF-8,還支持其它語言編碼。
使用PersistentCookieStore進行Cookie的持久化存儲
async-http-client庫包含一個PersistentCookieStore類,這個類實現了CookieStore接口(源自Apache HttpClient包),可自動將cookie信息保存到應用的SharedPreferences儲存中。
如果你的應用需要使用cookie維護用戶授權session,這是非常有用,方便的。即使關閉了app或重新啓動app,應用也可以保持用戶已登錄的狀態。
首先創建一個AsyncHttpClient實例:
AsyncHttpClient myClient = new AsyncHttpClient();
爲這個實例設置一個新建的PersistentCookieStore的實例以進行cookie存儲,調用這個PersistentCookieStore實例的構造函數時,使用一個activity或application context作參數(一般用this就可以了):
PersistentCookieStore myCookieStore = new PersistentCookieStore(this);
myClient.setCookieStore(myCookieStore);
這樣由服務端接收到的cookie將會自動存儲在你的android設備上。如果要添加自己的cookie,只需要構建一個新的cookie並調用addCookie函數:
BasicClientCookie newCookie = new BasicClientCookie("cookiesare", "awesome");
newCookie.setVersion(1);
newCookie.setDomain("mydomain.com");
newCookie.setPath("/");
myCookieStore.addCookie(newCookie);