自定义GSON类

 1 public class GsonRequest<T> extends Request<T> {
 2     private final Gson mGson = new Gson();
 3     private final Class<T> mClazz;
 4     private final Listener<T> mListener;
 5     private final Map<String, String> mHeaders;
 6 
 7     public GsonRequest(String url, Class<T> clazz, Listener<T> listener, ErrorListener errorListener) {
 8         this(Method.GET, url, clazz, null, listener, errorListener);
 9     }
10 
11     public GsonRequest(int method, String url, Class<T> clazz, Map<String, String> headers,
12             Listener<T> listener, ErrorListener errorListener) {
13         super(method, url, errorListener);
14         this.mClazz = clazz;
15         this.mHeaders = headers;
16         this.mListener = listener;
17     }
18 
19     @Override
20     public Map<String, String> getHeaders() throws AuthFailureError {
21         return mHeaders != null ? mHeaders : super.getHeaders();
22     }
23 
24     @Override
25     protected void deliverResponse(T response) {
26         mListener.onResponse(response);
27     }
28 
29     @Override
30     protected Response<T> parseNetworkResponse(NetworkResponse response) {
31         try {
32             String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
33             return Response.success(mGson.fromJson(json, mClazz),
34                     HttpHeaderParser.parseCacheHeaders(response));
35         } catch (UnsupportedEncodingException e) {
36             return Response.error(new ParseError(e));
37         } catch (JsonSyntaxException e) {
38             return Response.error(new ParseError(e));
39         }
40     }
41 }
View Code

相关文章: