自定义Resquest

package com.th.thfilms.util;

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

import java.io.UnsupportedEncodingException;

public class GsonRequest <T> extends Request<T> {

private Listener<T> mListener;

private Gson mGson;

private Class<T> mClass;  

public GsonRequest(int method, String url, Class<T> clazz, Listener<T> listener,
        ErrorListener errorListener) {
    super(method, url, errorListener);  
    mGson = new Gson();
    mClass = clazz;  
    mListener = listener;  
}  

public GsonRequest(String url, Class<T> clazz, Listener<T> listener,
        ErrorListener errorListener) {
    this(Method.GET, url, clazz, listener, errorListener);
}

@Override
protected void onFinish() {
    super.onFinish();
    mListener=null;
}

@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
    try {  
        String jsonString = new String(response.data,  
                HttpHeaderParser.parseCharset(response.headers));
        return Response.success(mGson.fromJson(jsonString, mClass),
                HttpHeaderParser.parseCacheHeaders(response));
    } catch (UnsupportedEncodingException e) {  
        return Response.error(new ParseError(e));
    }  
}  

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容