Android Volley框架的使用(1)

在Android開發中,常常要經過HTTP請求訪問網絡。爲了使經過HTTP請求訪問網絡的過程更加簡單,2013年提出了新的HTTP通訊框架--Volley。Volley使用起來很是簡單,適用於網絡訪問頻繁、通訊數據量小的狀況。android

下載volley.jar文件並導入工程,加上訪問網絡的權限,就能夠使用Volley框架訪問網絡了。json

<uses-permission android:name="android.permission.INTERNET"/>

訪問的過程也十分簡單:(1)建立一個請求隊列;(2)建立請求對象;(3)將請求對象加入請求隊列。這三個步驟完成之後,請求隊列就能夠自動、併發的實現網絡訪問了。多個請求對象能夠加入到同一個請求隊列中,所以一個Activity只須要一個請求隊列就好了。服務器

1. 建立請求隊列網絡

定義請求隊列:併發

private RequestQueue mQueue;

建立請求隊列:框架

mQueue = Volley.newRequestQueue(MainActivity.this);

2. 建立請求對象並加入請求隊列ide

Volley有兩種請求對象:StringRequest和JSONRequest。函數

(1) StringRequestthis

    private void stringRequest(){
        StringRequest stringRequest = new StringRequest("http://www.126.com",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.i("Response:", response);
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.i("Error:", error.getMessage(), error);
                    }
                });
        mQueue.add(stringRequest);
    }

能夠看見定義了一個StringRequest對象,而後將其加入到RequestQueue就能夠了。StringRequest有三個參數:第一個是要訪問的URL(這裏是http://www.126.com);第二個是收到服務器響應的回調函數;第三個是服務器響應失敗的回調函數。運行的結果以下:spa

(2) JsonObjectRequest

    private void jsonRequest(){
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://192.168.199.18:8080/MySchool/aclasquery", 
                null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.i("Response:", response.toString());
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.i("Error:", error.getMessage(), error);
                    }
                });
        mQueue.add(jsonObjectRequest);
    }

能夠看見和StringRequest的使用基本上差很少,只不過StringRequest返回的是字符串,而JsonObjectRequest返回的是一個JSONObject。運行結果以下:

相關文章
相關標籤/搜索