自定义CommonRequest 继承Volley的StringRequest 工具类

StringRequest 是Volley的StringRequest方法
自定义CommonRequest 继承StringRequest 工具类

/**
  *自定义CommonRequest 继承StringRequest 方便Model层 发送请求的时候调用
  *
  /
public class CommonRequest extends StringRequest{

    public static String JSESSIONID=null;
    // 这个构造方法 是发送POST 请求的时候 调用的
    public CommonRequest(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
        super(method, url, listener, errorListener);
    }
    // 这个是发送get请求时 调用
    public CommonRequest(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
        super(url, listener, errorListener);
    }
    //获得消息头
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        Map<String, String> headers = super.getHeaders();

        if(headers!=null || headers.equals(Collections.emptyMap())){
            headers = new HashMap<String, String>();
        }
        //如果有session则传递sessionid
        if(JSESSIONID!=null) {
            headers.put("Cookie", JSESSIONID);
        }
        //判断sharepreference中是否存有cart信息 有的话则一起发送数据
        SharedPreferences pref = MyApplication.getContext().getSharedPreferences("cart", Context.MODE_PRIVATE);
        String cart=pref.getString("cart", null);
        if(cart!=null){
            String cookie=headers.get("Cookie");
            headers.put("Cookie", cookie==null ? cart:cookie+", cart="+cart);
        }
        return headers;
    }
    //解析网络响应 
    @Override
    protected Response<String> parseNetworkResponse(NetworkResponse response) {
        Map<String, String> headers = response.headers;
        String sessionid=headers.get("Set-Cookie");
        if(sessionid!=null){
            // 记住sessionId的格式
            JSESSIONID=sessionid.split(";")[0];
        }
        String parsed;
        try {
            parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        } catch (UnsupportedEncodingException e) {
            parsed = new String(response.data);
        }
        return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response));
    }
}

你可能感兴趣的:(工具类)