关于volley的get、post、put、delete方法

来源:互联网 发布:ape转换flac软件 编辑:程序博客网 时间:2024/06/07 02:23

上一篇介绍了关于volley的基本用法,仅仅是get的一个方法,当然关于request不仅仅有StringRequest,还有JasonRequest,JsonRequest还有两个直接的子类,JsonObjectRequest和JsonArrayRequest。用法大致相同,不做阐述。
废话不多说,直接上代码!!!

get方法:

public void getRequest(String url) {        StringRequest getRequest = new StringRequest(url,                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {                        Log.d(TAG, response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        Log.e(TAG, error.getMessage());                        Exception exception = error;                        handleException(exception);                    }                });        // add it to the RequestQueue        mRequestQueues.add(getRequest);    }

post方法:

public void postRequest(String url) {        StringRequest postRequest = new StringRequest(Request.Method.POST, url,                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {                        // response                        Log.d("Response", response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        // error                        Log.d("Error.Response", error.getMessage());                        Exception exception = error;                        handleException(exception);                    }                }) {            @Override            protected Map<String, String> getParams() {                Map<String, String> params = new HashMap<String, String>();                params.put("name", "zhaozhe");                params.put("domain", "http://www.baidu.com");                return params;            }        };        mRequestQueues.add(postRequest);    }

put用法:

public void putRequest(String url) {        StringRequest putRequest = new StringRequest(Request.Method.PUT, url,                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {                        // response                        Log.d("Response", response);                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        // error                        Log.d("Error.Response", error.getMessage());                        Exception exception = error;                        handleException(exception);                    }                }) {            @Override            protected Map<String, String> getParams() {                Map<String, String> params = new HashMap<String, String>();                params.put("name", "zhaozhe");                params.put("domain", "http://www.baidu.com");                return params;            }        };        mRequestQueues.add(putRequest);    }

delete的用法:

public void deleteRequest(String url) {        StringRequest dr = new StringRequest(Request.Method.DELETE, url,                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {                        // response                        Toast.makeText(mContext, response, Toast.LENGTH_LONG)                                .show();                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        // error.                        Exception exception = error;                        handleException(exception);                    }                });        mRequestQueues.add(dr);    }

当然还有错误的处理方法:

/**     * VolleyError.java     * Volley 中所有错误异常的父类,继承自 Exception,可通过此类设置和获取 NetworkResponse 或者请求的耗时。     * AuthFailureError     * 继承自 VolleyError,代表请求认证失败错误,如 RespondeCode 的 401 和 403 (需服务器配合)。     * NetworkError     * 继承自 VolleyError,代表网络错误。     * ParseError(Request继承自StringRequest 使用不到)     * 继承自 VolleyError,代表内容解析错误。     * ServerError     * 继承自 VolleyError,代表服务端错误 (最有可能的4xx或5xx HTTP状态代码)。     * TimeoutError     * 继承自 VolleyError,代表请求超时错误。     * NoConnectionError     * 继承自NetworkError,代表无法建立连接错误。     *     * @param exception     */    private void handleException(Exception exception) {        String errorMessage;        try {            throw exception;        } catch (TimeoutError e) {            e.printStackTrace();            errorMessage = "网络连接超时,请检查当前网络";        } catch (NetworkError e) {            e.printStackTrace();            errorMessage = "网络连接失败,请检查当前网络";        } catch (ServerError e) {            e.printStackTrace();            errorMessage = "连接服务器失败,请检查当前网络";        } catch (AuthFailureError e) {            e.printStackTrace();            errorMessage = "身份验证错误,请重新登录";        } catch (VolleyError e) {            e.printStackTrace();            errorMessage = "请求错误,请稍后再试";        } catch (Exception e) {            e.printStackTrace();            errorMessage = "未知错误,请稍后再试";        }    }

菜鸟总结,如有不足之处,希望大家指正!

0 0
原创粉丝点击