zoukankan      html  css  js  c++  java
  • [Android] 开源框架 Volley 自定义 Request

    今天在看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类。

  • 相关阅读:
    ACM训练二B题
    ACM训练二A题
    hdu 1213 -how many tables
    hdu 4135 -Co-prime
    acm-青蛙的约会哦~
    HDU1711 【kmp算法 基础题】
    有向无环图(DAG)模型之-----嵌套矩阵(与猴子与香蕉很像)
    关于 C/C++左移右移运算符 的总结
    acm集训训练赛(二)D题【并查集】
    acm集训训练赛A题【签到题】
  • 原文地址:https://www.cnblogs.com/lemonbar/p/3965903.html
Copyright © 2011-2022 走看看