android-async-http庫(kù)的使用

介紹

android中網(wǎng)絡(luò)訪問的第三方庫(kù)github 地址:https://github.com/loopj/android-async-http
android-async-http主頁(yè):http://loopj.com/android-async-http/

特性

  • 發(fā)送異步http請(qǐng)求,在匿名callback對(duì)象中處理response信息;
  • http請(qǐng)求發(fā)生在UI(主)線程之外的異步線程中;
  • 內(nèi)部采用線程池來(lái)處理并發(fā)請(qǐng)求;
  • 通過(guò)RequestParams類構(gòu)造GET/POST;
  • 內(nèi)置多部分文件上傳,不需要第三方庫(kù)支持;
  • 流式Json上傳,不需要額外的庫(kù);
  • 能處理環(huán)行和相對(duì)重定向;
  • 和你的app大小相比來(lái)說(shuō),庫(kù)的size很小,所有的一切只有90kb;
  • 在各種各樣的移動(dòng)連接環(huán)境中具備自動(dòng)智能請(qǐng)求重試機(jī)制;
  • 自動(dòng)的gzip響應(yīng)解碼;
  • 內(nèi)置多種形式的響應(yīng)解析,有原生的字節(jié)流,string,json對(duì)象,甚至可以將 response寫到文件中;
  • 永久的cookie保存,內(nèi)部實(shí)現(xiàn)用的是Android的SharedPreferences;
  • 通過(guò)BaseJsonHttpResponseHandler和各種json庫(kù)集成;
  • 支持SAX解析器;
  • 支持各種語(yǔ)言和content編碼,不僅僅是UTF-8;

Gradle 中引用

在app的buid.gradle中添加
compile 'com.loopj.android:android-async-http:1.4.9'

使用

官方建議是通過(guò)靜態(tài)類的方法來(lái)使用
twitter的例子
<pre> import com.loopj.android.http.*;
public class TwitterRestClient {
private static final String BASE_URL = "https://api.twitter.com/1/";
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {

client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return BASE_URL + relativeUrl; }}
</pre>

在client 端就可以這么用了

import org.json.*;import com.loopj.android.http.*;class TwitterRestClientUsage {    
public void getPublicTimeline() throws JSONException {        TwitterRestClient.get("statuses/public_timeline.json", null, new JsonHttpResponseHandler() {           
 @Override           
 public void onSuccess(int statusCode, Header[] headers, JSONObject response) {              
  // If the response is JSONObject instead of expected JSONArray            }                     
   @Override        
    public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {                
// Pull out the first event on the public timeline              
      JSONObject firstEvent = timeline.get(0);           
       String tweetText = firstEvent.getString("text");          
      // Do something with the response                         
         System.out.println(tweetText);         
   }       
 });   
 }

傳參:

RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,324評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • 太長(zhǎng)了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無(wú)意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,398評(píng)論 3 283
  • 一直想養(yǎng)一只貓 偎依在凌晨的街角 把所有廢話都傾倒 換它白眼一瞟 也許我需要一只貓 來(lái)分擔(dān)我對(duì)這世界的思考 瀝青安...
    厭世時(shí)令閱讀 211評(píng)論 0 0
  • 平江路里氣芬芳,原是有花語(yǔ)丁香。 中家橋邊漢服美,不及柔情兒女長(zhǎng)。
    逗不逗_b17c閱讀 223評(píng)論 0 2

友情鏈接更多精彩內(nèi)容