在iOS開發中有大名鼎鼎的ASIHttpRequest庫,用來處理網路請求操作,今天要介紹的是一個在Android上同樣強大的網路請求庫android-async-http,目前非常火的應用Instagram和Pinterest的Android版就是用的這個網路請求庫。這個網路請求庫是基於Apache HttpClient庫之上的一個非同步網路請求處理庫,網路處理均基於Android的非UI線程,通過回調方法處理請求結果。其主要特徵如下:處理非同步Http請求,並通過匿名內部類處理回調結果Http請求均位於非UI線程,不會阻塞UI操作通過線程池處理並發請求處理檔案上傳、下載響應結果自動打包JSON格式自動處理串連斷開時請求重連使用android-async-http也非常簡單,到官網http://loopj.com/android-async-http/下載依賴jar包,匯入工程中libs檔案夾下並添加到工程路徑即可。通過下面的代碼來建立一個非同步請求:[java] 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"); } } 通過Get請求指定的URL並通過回呼函數處理請求結果,同時,請求方式還支援POST和PUT,請求的同時還支援參數傳遞,下面看看如何通過JSON字串作為參數訪問伺服器:[java] 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(); } 官方推薦的使用方法,使用一個靜態請求對象,我們來看看官方例舉的一個訪問Twitter的API的例子:使用方法: 由於涉及網路請求,最後別忘了添加許可權:[html] <uses-permission android:name="android.permission.INTERNET" /> 其他功能例如上傳、下載檔案等大家可以去官網查看,我就不贅述了!