Volley自定义Request之Goson

package com.dangzhongyang.zuoye.data.utils;

import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;

import java.io.UnsupportedEncodingException;


public class GsonRequest<T> extends Request<T> {
    private Class<T> calzz;
    private Response.Listener<T> mListener;
    public GsonRequest(String url, Class<T> calzz, Response.Listener<T> mListener,Response.ErrorListener listener) {
        this(Method.GET,url,calzz, mListener,listener);
    }

    public GsonRequest(int method, String url,Class<T> calzz, Response.Listener<T> mListener,Response.ErrorListener listener) {
        super(method, url, listener);
        this.mListener=mListener;
        this.calzz=calzz;

    }

    @Override
    protected void deliverResponse(T response) {
        if (mListener != null) {
            mListener.onResponse(response);
        }
    }

    @Override
    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        String parsed;
        try {
            parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        } catch (UnsupportedEncodingException e) {
            parsed = new String(response.data);
        }
        Gson gson=new Gson();

        T t = gson.fromJson(parsed, calzz);
        return Response.success(t, HttpHeaderParser.parseCacheHeaders(response));
    }
}

猜你喜欢

转载自blog.csdn.net/zeyu_rensheng/article/details/80548270