package com.devtf_l.app.net; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import com.android.volley.AuthFailureError; 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 com.google.gson.JsonSyntaxException; /** * @desc xml2Bean * @author ljh * lijunhuayc@sina.com 2015-5-11 @param <T> * @deprecated 废弃 */ public class XmlRequest<T> extends Request<T> { private final Gson gson = new Gson(); private final Class<T> clazz; private final Listener<T> listener; private static Map<String, String> mHeader = new HashMap<String, String>(); /** * 设置访问自己服务器时必须传递的参数,密钥等 */ static { mHeader.put("APP-Key", "LBS-AAA"); mHeader.put("APP-Secret", "ad12msa234das232in"); } /** * @param url * @param clazz * 我们最终的转化类型 * @param headers * 请求附带的头信息 * @param listener * @param appendHeader * 附加头数据 * @param errorListener */ public XmlRequest(String url, Class<T> clazz, Listener<T> listener, Map<String, String> appendHeader, ErrorListener errorListener) { super(Method.GET, url, errorListener); this.clazz = clazz; this.listener = listener; mHeader.putAll(appendHeader); } @Override public Map<String, String> getHeaders() throws AuthFailureError { // 默认返回 return Collections.emptyMap(); return mHeader; } @Override protected void deliverResponse(T response) { listener.onResponse(response); } @Override protected Response<T> parseNetworkResponse(NetworkResponse response) { try { /** * 得到返回的数据 */ String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); /** * 转化成对象 */ return Response.success(gson.fromJson(jsonStr, clazz), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JsonSyntaxException e) { return Response.error(new ParseError(e)); } } }