Android网络请求Volley详解

Android网络请求Volley详解

在Android Studio中导入Volley

compile 'com.mcxiaoke.volley:library:1.0.19'

Volley进行网络请求需先创建一个Request对象,并将其加入RequestQueue中发送请求

一、Resquest对象

1、GET请求

请求字符串

StringRequest stringGetRequest = new StringRequest(
        Request.Method.GET,
        "url",
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        }
);

请求JSON

JsonObjectRequest jsonGetRequest = new JsonObjectRequest(
        Request.Method.GET,
        "url",
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                if (response == null) return;
                try {
                    int total = response.getInt("total");

                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }
);

2、POST请求

StringRequest stringRequest = new StringRequest(
        Request.Method.POST,
        "url",
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }) {
    //上传参数 键值对
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String, String> map = new HashMap<>();
        map.put("K1", "V1");
        map.put("K2", "V2");
        return map;
    }

    //上传往http协议里面添加头部键值对
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("k1", "v1");
        headers.put("k2", "v2");
        return headers;
    }
};

3、请求图片

ImageRequest imageRequest = new ImageRequest(
        "url",
        new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap response) {

            }
        },
        0,//宽
        0,//高
        ImageView.ScaleType.CENTER,
        Bitmap.Config.ARGB_8888,//RGB_565小图标
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }
);

二、RequestQueue

RequestQueue queue = Volley.newRequestQueue(context);
queue.add(request);

猜你喜欢

转载自blog.csdn.net/yljj930205/article/details/80208846