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。运行结果以下:

相关文章
相关标签/搜索