Android使用Volley保持与服务器的会话
来源:互联网 发布:阿里云企业邮箱客户端 编辑:程序博客网 时间:2024/06/08 10:03
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<String, String> mMap; private Map mHeaders = new HashMap(1); public static String sessionID = null; private Response.Listener<JSONObject> mListener; public NormalPostRequest(String url, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener, Map<String, String> map) { super(Request.Method.POST, url, errorListener); mListener = listener; mMap = map; } //mMap是已经按照前面的方式,设置了参数的实例 @Override protected Map<String, String> getParams() throws AuthFailureError { return mMap; } //此处因为response返回值需要json数据,和JsonObjectRequest类一样即可 @Override protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { try { Map<String, String> 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; }}
0 0
- Android使用Volley保持与服务器的会话
- 【Android】 Volley请求中,使用cookit进行服务器与客户端的会话保持
- 使用Volley实现session会话保持
- volley session 保持会话
- Android客户端访问服务器保持SESSION会话的实现
- Android客户端访问服务器保持SESSION会话的实现
- [Android] 使用Cookie保持会话
- [Android] 使用Cookie保持会话
- web server 与 browser 的会话保持
- android与服务器连接保持
- F5的会话保持
- F5的会话保持
- 会话保持的英文翻译
- 服务器与浏览器的会话
- android使用volley的GET访问服务器乱码
- Android Volley的使用
- android volley的使用
- 负载均衡器与会话保持的关联(理论)
- GNU-LIBC源码学习之strlen
- Leetcode_190_Reverse Bits
- IOS开发-06.提示框
- leetcode 69:Sqrt(x)
- 对类的继承的理解
- Android使用Volley保持与服务器的会话
- java jar 打包命令
- 数组配对(算法)
- PAT 数据结构 08-排序4. The World's Richest (25)
- 大话设计模式(一 面试受挫——代码无错就是好?)
- n个骰子的点数
- 红黑树
- CS224D Lecture 4 札记
- Mac上安装gdb