Volley简单封装--笔记

Volley简单封装

封装只是为了自我代码的高效与整洁


Volley是Google 提供的网络通信库,使得网络请求更简单、更快速

package com.czz.testhttp;

import android.content.Context;
import android.util.Log;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.Map;

/**
 * Volley简单封装
 * Created by czz on 2016/4/7.
 */
public class VolleyUtil {
    private static final String TAG = VolleyUtil.class.getName();

    private VolleyUtil() {
    }

    public interface DealS {
        public void success(String s);
    }

    public interface DealE {
        public void error(VolleyError error);
    }

    public interface DealFinal {
        public void d_final();
    }

    /**
     * Volley StringRequest get请求
     *
     * @param context 上下文
     * @param url     请求网络地址
     * @param ds      成功处理
     * @param de      失败处理
     */
    public static void get(Context context, String url, final DealS ds, final DealE de) {
        get(context, url, ds, de, null);
    }

    /**
     * Volley StringRequest get请求
     *
     * @param context 上下文
     * @param url     请求网络地址
     * @param ds      成功处理
     * @param de      失败处理
     * @param df      最终处理,比如不管请求成功还是失败都要关闭Dialog
     */
    public static void get(Context context, String url, final DealS ds, final DealE de, final DealFinal df) {
        RequestQueue mQueue = Volley.newRequestQueue(context);
        StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                if (null != ds) {
                    ds.success(s);
                }

                if (null != df) {
                    df.d_final();
                }
                Log.e(TAG, "请求成功 --> " + s);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (null != de) {
                    de.error(error);
                }
                if (null != df) {
                    df.d_final();
                }
                Log.e(TAG, "请求失败 --> " + error.getMessage());
            }
        });
        mQueue.add(stringRequest);
    }


    /**
     * Volley StringRequest post请求
     *
     * @param context 上下文
     * @param url     请求网络地址
     * @param map     请求参数
     * @param ds      成功处理
     * @param de      失败处理
     */
    public static void post(Context context, String url, final Map<String, String> map, final DealS ds, final DealE de) {
        post(context, url, map, ds, de, null);
    }

    /**
     * Volley StringRequest post请求
     *
     * @param context 上下文
     * @param url     请求网络地址
     * @param map     请求参数
     * @param ds      成功处理
     * @param de      失败处理
     * @param df      最终处理,比如不管请求成功还是失败都要关闭Dialog
     */
    public static void post(Context context, String url, final Map<String, String> map, final DealS ds, final DealE de, final DealFinal df) {
        RequestQueue mQueue = Volley.newRequestQueue(context);
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                if (null != ds) {
                    ds.success(s);
                }
                if(null != df){
                    df.d_final();
                }
                Log.e(TAG, "请求成功 --> " + s);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (null != de) {
                    de.error(error);
                }
                if(null != df){
                    df.d_final();
                }
                Log.e(TAG, "请求失败 --> " + error.getMessage());
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                if (null != map && map.size() != 0) {
                    return map;
                }
                return super.getParams();
            }
        };
        mQueue.add(stringRequest);
    }

}

调用例子:

    public void getData() {
        VolleyUtil.get(this, url, new VolleyUtil.DealS() {
            @Override
            public void success(String s) {
                //tv.setText(s);
            }
        }, null);
    }

    public void postData() {

        Map<String, String> map = new HashMap<>();
        map.put("userid", "10497");
        map.put("startindex", "1");
        map.put("pagenum", "10");

        VolleyUtil.post(this, purl, map, new VolleyUtil.DealS() {
            @Override
            public void success(String s) {

            }
        }, null);
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值