package cn.usmaker.hm.pai.velloy;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.toolbox.HttpHeaderParser;import org.json.JSONException;import org.json.JSONObject;import java.io.UnsupportedEncodingException;import java.util.HashMap;import java.util.Map;/** * Created by chenzhenyang on 2015/6/21. */public class NormalPostRequest extends Request<JSONObject> {    private Map mMap;    private Map mHeaders = new HashMap(1);    public static String sessionID = null;    private Response.Listener mListener;    public NormalPostRequest(String url, Response.Listener listener, Response.ErrorListener errorListener, Map map) {        super(Request.Method.POST, url, errorListener);        mListener = listener;        mMap = map;    }    //mMap是已经按照前面的方式,设置了参数的实例    @Override    protected Map getParams() throws AuthFailureError {        return mMap;    }    //此处因为response返回值需要json数据,和JsonObjectRequest类一样即可    @Override    protected Response parseNetworkResponse(NetworkResponse response) {        try {            Map headers = response.headers;            String cookie = headers.get("Set-Cookie");            if (cookie != null) {                sessionID = cookie.substring(0, cookie.indexOf(";"));// 获取sessionID            }            String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers));            return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response));        } catch (UnsupportedEncodingException e) {            return Response.error(new ParseError(e));        } catch (JSONException je) {            return Response.error(new ParseError(je));        }    }    @Override    protected void deliverResponse(JSONObject response) {        mListener.onResponse(response);    }    @Override    public Map getHeaders() throws AuthFailureError {        if (sessionID != null) {            mHeaders.put("Cookie", sessionID);        }        return mHeaders;    }    /**     * 清除Session,退出时调用     */    public static void clearSession() {        sessionID = null;    }}

更多相关文章

  1. Android软键盘用法实例
  2. Android对话框实例-注册对话框
  3. Android 全屏显示实例
  4. android之Fragment静态实现实例
  5. android用户界面详尽教程实例
  6. [置顶] 我的Android进阶之旅------>Android Widget 桌面数字时钟
  7. Android中判断网络是否连接实例详解
  8. Android 实现扫雷小游戏实例代码
  9. Android——ViewGroup的一个用法实例

随机推荐

  1. (转)在Android上使用OpenCL调用GPU加速
  2. Android 读取TXT 文件中文乱码 解决方案
  3. Android SDK开发 -- TitleBar重构 - 使用
  4. Android 复习笔记之图解Intent和IntentFi
  5. HTC 為 Android(安卓)4.0 更新再發聲明
  6. [已解决]mac android studio安装报错java
  7. Android Studio设置apk文件名
  8. android 取消Title 头部标题栏
  9. Android uiautomator dump 命令介绍
  10. oauth点击授权之后,不Callback到指定url