android实现session保持

sesion在浏览器和web服务器直接是通过一个叫做name为sessionid的cookie来传递的,所以只要在每次数据请求时保持sessionid是同一个不变就可以用到web的session了,做法是第一次数据请求时就获取sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要将这个sessionid一并放在Cookie中发给服务器,服务器则是通过这个sessionid来识别究竟是那个客户端在请求数据的,这个sessionid的名字叫做JSESSIONID。下面贴下代码

HttpPost httpPost = new HttpPost(url);
				// httpPost.addHeader("Content-Type", "application/json");
				// httpPost.addHeader("User-Agent", "imgfornote");
				httpPost.setEntity(new UrlEncodedFormEntity(postDate, "utf-8"));
				System.out.println("JSESSIONID:"+JSESSIONID);
				if (null != JSESSIONID) {
					httpPost.setHeader("Cookie", "JSESSIONID=" + JSESSIONID);
				}
				// 缓存的处理
				if (cacheType == cache_none) {// 一直不使用缓存
					httpResponse = httpClient.execute(httpPost);
					if (isHttpSuccessExecuted(httpResponse)) {
						String result = EntityUtils.toString(
								httpResponse.getEntity(), "utf-8");
						//获得sessionID
						CookieStore mCookieStore = ((AbstractHttpClient) httpClient).getCookieStore();
						List<Cookie> cookies = mCookieStore.getCookies();
						for (int i = 0; i < cookies.size(); i++) {
							// 这里是读取Cookie['JSESSIONID']的值存在静态变量中,保证每次都是同一个值
							if ("JSESSIONID".equals(cookies.get(i).getName())) {
								JSESSIONID = cookies.get(i).getValue();
								System.out.println("cookies:JSESSIONID:"+JSESSIONID);
								break;
							}
						}
						if (isCallBack) {
							if (this.listener != null) {
								TNTHttpRequestCallBackListener istener = this.listener;
								istener.OperatingData(result);
							}
							this.sendMessage(result);
						}
					} else {
						this.sendErrorMessage(httpResponse.getStatusLine()
								.getStatusCode() + "");
					}
				} 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值