Android-AsyncHttpClient網絡框架

android-async-http簡介 :

  • Android中收集要求一樣平常應用Apache HTTP Client或採納HttpURLConnect,然則間接應用那兩個類庫須要寫大批的代碼才幹完成收集post戰get要求,而應用android-async-http那個庫能夠大大的簡化操。

android-async-http特性:

  • 採用異步http請求,並通過匿名內部類處理回調結果
  • http請求獨立在UI主線程之外
  • 採用線程池來處理併發請求
  • 採用RequestParams類創建GET/POST參數
  • 不需要第三方包即可支持Multipart file文件上傳
  • 大小隻有25kb
  • 自動爲各種移動電話處理連接斷開時請求重連
  • 超快的自動gzip響應解碼支持
  • 使用BinaryHttpResponseHandler類下載二進制文件(如圖片)
  • 使用JsonHttpResponseHandler類可以自動將響應結果解析爲json格式
  • 持久化cookie存儲,可以將cookie保存到你的應用程序的SharedPreferences中

主要類介紹:

  • AsyncHttpRequest:

繼承自Runabler,被submit至線程池執行網絡請求併發送start,success等消息。

  • AsyncHttpResponseHandler:

接收請求結果,一般重寫onSuccess及onFailure接收請求成功或失敗的消息。

  • TextHttpResponseHandler:

繼承自AsyncHttpResponseHandler,只是重寫了AsyncHttpResponseHandler的onSuccess和onFailure方法,將請求結果由byte數組轉換爲String。

  • JsonHttpResponseHandler:

繼承自TextHttpResponseHandler,同樣是重寫onSuccess和onFailure方法,將請求結果由String轉換爲JSONObject或JSONArray

  • BaseJsonHttpResponseHandler:

繼承自TextHttpResponseHandler,是一個泛型類,提供了parseResponse方法,子類需要提供實現,將請求結果解析成需要的類型,子類可以靈活地使用解析方法,可以直接原始解析,使用gson等。

  • RequestParams:

請求參數,可以添加普通的字符串參數,並可添加File,InputStream上傳文件。

  • SyncHttpClient:

繼承自AsyncHttpClient,同步執行網絡請求,AsyncHttpClient把請求封裝成AsyncHttpRequest後提交至線程池,SyncHttpClient把請求封裝成AsyncHttpRequest後直接調用它的run方法。

請求流程:

1、調用AsyncHttpClient的get或post等方法發起網絡請求。

2、所有的請求都走了sendRequest,在sendRequest中把請求封裝爲了AsyncHttpRequest,並添加到線程池執行。

3、當請求被執行時(既AsyncHttpRequest的run方法),執行AsyncHttpRequest的makeRequestWithRetries方法執行實際的請求,當請求訪問失敗時可以重試。並在請求開始,結束,成功或失敗的時候請求時傳的ResponseHandlerInterface實例發送消息.

4、基本上使用的都是AsyncHttpResponseHandler的子類,調用其onStart,onSuccess等方法返回請求結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章