android 客户端 保持session 连接
来源:互联网 发布:炉石传说当地网络 编辑:程序博客网 时间:2024/04/28 15:12
import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.CookieStore;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.cookie.Cookie;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;public class MyHttpClient implements InetConfig { private DefaultHttpClient httpClient; private HttpPost httpPost; private HttpEntity httpEntity; private HttpResponse httpResponse; public static String PHPSESSID = null; public LVHttpClient() { } public String executeRequest(String path, List<NameValuePair> params) { String ret = "none"; try { this.httpPost = new HttpPost(BASEPATH + path); httpEntity = new UrlEncodedFormEntity(params, HTTP.UTF_8); httpPost.setEntity(httpEntity); //第一次一般是还未被赋值,若有值则将SessionId发给服务器 if(null != PHPSESSID){ httpPost.setHeader("Cookie", "PHPSESSID=" + PHPSESSID); } httpClient = new DefaultHttpClient(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } try { httpResponse = httpClient.execute(httpPost); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { HttpEntity entity = httpResponse.getEntity(); ret = EntityUtils.toString(entity); CookieStore mCookieStore = httpClient.getCookieStore(); List<Cookie> cookies = mCookieStore.getCookies(); for (int i = 0; i < cookies.size(); i++) { //这里是读取Cookie['PHPSESSID']的值存在静态变量中,保证每次都是同一个值 if ("PHPSESSID".equals(cookies.get(i).getName())) { PHPSESSID = cookies.get(i).getValue(); break; } } } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ret; }}
其实web的原理都是一样的,基于http协议的,那么如果网站不是php做的话,那个叫做Sessionid的Cookie可能叫做别的了,就不是PHPSESSID了,而是叫做别的名字了,这个可能要具体情况去查了。
其 实不只是Android程序,其他任何程序需要这么用的时候只需要在http协议请求header里头加上发送相应的SessionId就可以了。刚刚这 种方法是可以帮助理解sessionid的,其实还有一种方法如果更通用的话,就可以将刚刚所有的Cookie每次都发回到服务器端,也就可以解决 session保持的问题了。
0 0
- android 客户端 保持session 连接
- android 客户端 保持session 连接
- Android 分析android 客户端保持session 不过期的方式
- Android 分析android 客户端保持session 不过期的方式
- android客户端与服务器端交互 如何保持session
- android客户端通过webServcie与服务器交互,如何保持Session
- android客户端与服务器端交互 如何保持session
- android客户端调用接口与服务器端交互 如何保持session
- android客户端与服务器端交互 如何保持session
- Android客户端访问服务器保持SESSION会话的实现
- android客户端与服务器端交互 如何保持session
- android客户端与服务器端交互 如何保持session
- Android客户端与服务器端交互 如何保持session
- Android客户端与服务器端交互,如何保持session回话
- Android客户端访问服务器保持SESSION会话的实现
- Android 永久化保持客户端和服务器连接cookieStore
- android实现session保持
- android实现session保持
- java中的io——字符流(三)
- 黑马程序员——设计模式
- poj 题目分类
- 黑马程序员-- 总结一些必要的理解的知识点
- Eclipse背景、语法高亮配置epf文件
- android 客户端 保持session 连接
- UI - UITableViewControllerAndCustomCell
- 关于java和c++中 i=i++结果不同的分析
- iOS Object-c 学习笔记
- Java基础编程7-特殊流程控制语句-break用法
- 遥感图像预处理之几何校正
- CronTrigger的CronExpression表达式意义
- 程序的原子性
- Android Api Demos登顶之路(103)View-->Chronometer