(4.1.28.2)HttpPost.setHeader("Cookie", "PHPSESSID=" + PHPSESSID)方式的HttpClient工具类
来源:互联网 发布:魅影传说坐骑进阶数据 编辑:程序博客网 时间:2024/04/30 18:13
session 在浏览器和web服务器直接是通过一个叫做name为sessionid的cookie来传递的,所以只要在每次数据请求时保持sessionid是同一 个不变就可以用到web的session了,做法是第一次数据请求时就获取sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要 将这个sessionid一并放在Cookie中发给服务器,服务器则是通过这个sessionid来识别究竟是那个客户端在请求数据的,在php中这个 sessionid的名字叫做PHPSESSID。 在java 下sessionid 的名字叫做JSESSIONID
- package com.rainet.tiis.network;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.CookieStore;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.params.HttpClientParams;
- import org.apache.http.cookie.Cookie;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.params.BasicHttpParams;
- import org.apache.http.params.HttpConnectionParams;
- import org.apache.http.params.HttpParams;
- import org.apache.http.params.HttpProtocolParams;
- import org.apache.http.protocol.HTTP;
- import org.apache.http.util.EntityUtils;
- import android.util.Log;
- /**
- * @project: TIIS
- * @Title: SimpleClient.java
- * @Package com.rainet.tiis.network
- * @Description: HTTP请求factory
- * @author 杨贵松
- * @date 2014-3-18 下午12:39:23
- * @version V1.0
- */
- public class SimpleClient {
- private static HttpParams httpParams;
- private static DefaultHttpClient httpClient;
- private static String JSESSIONID; //定义一个静态的字段,保存sessionID
- /**
- * @Title: getHttpClient
- * @author 杨贵松
- * @date 2014-3-18 下午1:11:18
- * @Description: 获取HttpClient
- * @return
- * @throws Exception
- * HttpClient 返回
- */
- public static HttpClient getHttpClient() throws Exception {
- // 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
- httpParams = new BasicHttpParams();
- // 设置连接超时和 Socket 超时,以及 Socket 缓存大小
- HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);
- HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);
- HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
- // 设置重定向,缺省为 true
- HttpClientParams.setRedirecting(httpParams, true);
- // 设置 user agent
- String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
- HttpProtocolParams.setUserAgent(httpParams, userAgent);
- // 创建一个 HttpClient 实例
- // 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
- // 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
- httpClient = new DefaultHttpClient(httpParams);
- return httpClient;
- }
- /**
- * @Title: doGet
- * @author 杨贵松
- * @date 2014-3-18 下午12:39:58
- * @Description: doGet请求
- * @param url
- * @param params
- * @return
- * @throws Exception
- * String 返回
- */
- @SuppressWarnings("rawtypes")
- public static String doGet(String url, Map params) throws Exception {
- /* 建立HTTPGet对象 */
- String paramStr = "";
- if (params != null) {
- Iterator iter = params.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry) iter.next();
- Object key = entry.getKey();
- Object val = entry.getValue();
- paramStr += paramStr = "&" + key + "=" + val;
- }
- }
- if (!paramStr.equals("")) {
- paramStr = paramStr.replaceFirst("&", "?");
- url += paramStr;
- }
- HttpGet httpRequest = new HttpGet(url);
- String strResult = "doGetError";
- /* 发送请求并等待响应 */
- HttpResponse httpResponse = httpClient.execute(httpRequest);
- /* 若状态码为200 ok */
- if (httpResponse.getStatusLine().getStatusCode() == 200) {
- /* 读返回数据 */
- strResult = EntityUtils.toString(httpResponse.getEntity());
- } else {
- strResult = "Error Response: " + httpResponse.getStatusLine().toString();
- }
- Log.v("strResult", strResult);
- return strResult;
- }
- /**
- * @Title: doPost
- * @author 杨贵松
- * @date 2014-3-18 下午12:39:38
- * @Description: doPost请求
- * @param url
- * @param params
- * @return
- * @throws Exception
- * String 返回
- */
- public static String doPost(String url, List<NameValuePair> params) throws Exception {
- /* 建立HTTPPost对象 */
- HttpPost httpRequest = new HttpPost(url);
- String strResult = "doPostError";
- /* 添加请求参数到请求对象 */
- if (params != null && params.size() > 0) {
- httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
- }
- if(null != JSESSIONID){
- httpRequest.setHeader("Cookie", "JSESSIONID="+JSESSIONID);
- }
- /* 发送请求并等待响应 */
- HttpResponse httpResponse = httpClient.execute(httpRequest);
- /* 若状态码为200 ok */
- if (httpResponse.getStatusLine().getStatusCode() == 200) {
- /* 读返回数据 */
- strResult = EntityUtils.toString(httpResponse.getEntity());
- /* 获取cookieStore */
- CookieStore cookieStore = httpClient.getCookieStore();
- List<Cookie> cookies = cookieStore.getCookies();
- for(int i=0;i<cookies.size();i++){
//这里是读取Cookie['JSSESSID']的值存在静态变量中,保证每次都是同一个值
- if("JSESSIONID".equals(cookies.get(i).getName())){
- JSESSIONID = cookies.get(i).getValue();
- break;
- }
- }
- }
- Log.v("strResult", strResult);
- return strResult;
- }
- }
0 0
- (4.1.28.2)HttpPost.setHeader("Cookie", "PHPSESSID=" + PHPSESSID)方式的HttpClient工具类
- cookie 中的 PHPSESSID
- 关于phpsessid
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- HttpClient的HttpGet和HttpPost工具类
- PHP SESSION PHPSESSID session_id()
- [转载]php文件后边自动加&PHPSESSID=ee2cb583e0b94bad4782ea
- ThinkPHP URL自己带上参数PHPSESSID
- HttpClient的应用实例--我的HttpPost相关工具封装类
- HttpClient的用法(包含httpget和httppost)
- HttpClient获取Cookie的两种方式
- httpClient httpPost
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- httpClient的POST方式使用的工具类
- HTTPClient模块的HttpGet和HttpPost
- QQ好友列表很炫?其实很简单!
- 第5章
- android引导页的实现
- 泛型(一)
- UVA 12526 Cellphone Typing (字典树)
- (4.1.28.2)HttpPost.setHeader("Cookie", "PHPSESSID=" + PHPSESSID)方式的HttpClient工具类
- 使用laypage分页
- ACdream 1073 雷霆战机
- 函数表达式 和函数声明
- python正则表达式 re (二)findall与finditer
- 来京两周年
- C语言函数参数压栈顺序为何是从右到左?
- MarkDown
- Scala入门到精通——第二十二节 高级类型 (一)