首页 > 移动平台 > 详细

[Android] 开源框架 Volley 自定义 Request

时间:2014-09-11 11:01:01      阅读:285      评论:0      收藏:0      [点我收藏+]

今天在看Volley demo (https://github.com/smanikandan14/Volley-demo), 发现自定义GsonRequest那块代码不全, 在这里贴一个全的。

public class GsonRequest<T> extends Request<T> {
    private Gson mGson;
    private Class mJavaClass;
    private Response.Listener<T> mListener;

    public GsonRequest(int method, String url, Class<T> cls, String requestBody,
                       Response.Listener<T> slistener,
                       Response.ErrorListener listener) {
        super(method, url, listener);
        mJavaClass = cls;
        mListener = slistener;
        mGson = new Gson();
    }

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

    @Override
    protected void deliverResponse(T response) {
        mListener.onResponse(response);
    }

 

简单说明一下几个fields的作用。

mJavaClass是在通过Json反序列化成对象时使用;

mListener里面onResponse是处理正确返回值的回调函数;

 

具体的实现也可以参考Volley中JsonRequest类。

[Android] 开源框架 Volley 自定义 Request

原文:http://www.cnblogs.com/lemonbar/p/3965903.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!