Android与服务器通信保持同一Session34.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android与服务器通信保持同一Session34

三、Session与Cookie的区别(一) 1)Cookie将状态保存在客户端,Session将状态保存在服务器端; 2)Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies。 Session与Cookie的区别(二) 3)Session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是不同用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值也可能设置为由get来返回给服务器; 4)就安全性来说:当你访问一个使用session 的站点,同时在自己机器上建立一个cookie,建议在服务器端的SESSION机制更安全些,因为它不会任意读取客户存储的信息。 四、代码实现 public class HttpUtils { public static final String PATH = “http://I服务器的IP地址/SSHTest/; public static String JSPSESSID = null;//静态变量用来保存jspsessid的值 // 通过url发送post请求,第一次请求后保存sessionID public static String queryStringForPost(String url) { HttpPost httpPost = new HttpPost(url);//实例化httppost String result = null; if (null != JSPSESSID) {//判断sessionid是否为空,不为空将就将jspsessid的值放在cookie中发送给服务器 httpPost.setHeader(Cookie, JSPSESSID= + JSPSESSID); } //实例化连接 DefaultHttpClient httpClient = new DefaultHttpClient(); try { //实例化返回结果 HttpResponse response = httpClient.execute(httpPost); //返回状态码为200,表示成功 if (response.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(response.getEntity(),HTTP.UTF_8) ; CookieStore mCookieStore = httpClient.getCookieStore();//取得cookiestore ListCookie list = mCookieStore.getCookies(); for (int i = 0; i list.size(); i++) { //读取Cookie[JSPSESSID]的值存在静态变量中,保证每次都是同一个值 if (JSPSESSID.equals(list.get(i).getName())) { JSPSESSID = list.get(i).getValue(); } } return result; } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } Android保持同一Session 引题 Android客户端在和web服务器连接时,每次请求数据时,服务如何确定是同一客户在请求连接。 为此,直接通过一个叫做name为sessionid的cookie来传递的,只要在每次数据请求时保持sessionid是同一个不变就可以用到web的session了,做法是第一次数据请求时就获取sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要将这个sessionid一并放在Cookie中发给服务器,服务器则是通过这个sessionid来识别究竟是那个客户端在请求数据的。 1、Session介绍 2、Cookie介绍 3、Session与Cookie的区别 4、代码实现 主题 一、Session介绍 Session是指一个终端用户与交互系统进行通信的时间间隔,通常

文档评论(0)

mliaojfangwi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档