龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開(kāi)發(fā),龍巖分銷系統(tǒng)

Android網(wǎng)絡(luò)請(qǐng)求庫(kù)——android-async-http

2015.09.10 | 775閱讀 | 0條評(píng)論 | 未命名

在iOS開(kāi)發(fā)中有大名鼎鼎的ASIHttpRequest庫(kù),用來(lái)處理網(wǎng)絡(luò)請(qǐng)求操作,今天要介紹的是一個(gè)在Android上同樣強(qiáng)大的網(wǎng)絡(luò)請(qǐng)求庫(kù)android-async-http,目前非常火的應(yīng)用Instagram和Pinterest的Android版就是用的這個(gè)網(wǎng)絡(luò)請(qǐng)求庫(kù)。這個(gè)網(wǎng)絡(luò)請(qǐng)求庫(kù)是基于Apache HttpClient庫(kù)之上的一個(gè)異步網(wǎng)絡(luò)請(qǐng)求處理庫(kù),網(wǎng)絡(luò)處理均基于Android的非UI線程,通過(guò)回調(diào)方法處理請(qǐng)求結(jié)果。 其主要特征如下:

  • 處理異步Http請(qǐng)求,并通過(guò)匿名內(nèi)部類處理回調(diào)結(jié)果
  • Http請(qǐng)求均位于非UI線程,不會(huì)阻塞UI操作
  • 通過(guò)線程池處理并發(fā)請(qǐng)求
  • 處理文件上傳、下載
  • 響應(yīng)結(jié)果自動(dòng)打包JSON格式
  • 自動(dòng)處理連接斷開(kāi)時(shí)請(qǐng)求重連
使用android-async-http也非常簡(jiǎn)單,到官網(wǎng)http://loopj.com/android-async-http/下載依賴jar包,導(dǎo)入工程中l(wèi)ibs文件夾下并添加到工程路徑即可。通過(guò)下面的代碼來(lái)創(chuàng)建一個(gè)異步請(qǐng)求:
AsyncHttpClient client = new AsyncHttpClient(); client.get("http://www.baidu.com", new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { System.out.println(response); textView.setText(response); } @Override public void onStart() { super.onStart(); System.out.println("onStart"); } @Override public void onFinish() { super.onFinish(); System.out.println("onFinish"); } } 通過(guò)Get請(qǐng)求指定的URL并通過(guò)回調(diào)函數(shù)處理請(qǐng)求結(jié)果,同時(shí),請(qǐng)求方式還支持POST和PUT,請(qǐng)求的同時(shí)還支持參數(shù)傳遞,下面看看如何通過(guò)JSON字符串作為參數(shù)訪問(wèn)服務(wù)器: try { JSONObject jsonObject = new JSONObject(); jsonObject.put("username", "ryantang"); StringEntity stringEntity = new StringEntity(jsonObject.toString()); client.post(MainActivity.this, "http://api.com/login", stringEntity, "application/json", new JsonHttpResponseHandler(){ @Override public void onSuccess(JSONObject jsonObject) { super.onSuccess(jsonObject); } }); } catch (JSONException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }); 官方推薦的使用方法,使用一個(gè)靜態(tài)的請(qǐng)求對(duì)象,我們來(lái)看看官方例舉的一個(gè)訪問(wèn)Twitter的API的例子: 使用方法: 由于涉及網(wǎng)絡(luò)請(qǐng)求,最后別忘了添加權(quán)限: [php]<uses-permission android:name="android.permission.INTERNET" />[/php]

贊 (

發(fā)表評(píng)論