关于Android http请求类添加Cookie,需要将cookie保存,在发送到服务器

package com.tpyg.busserver.utils;

import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.net.wifi.WifiManager;

import org.apache.http.Header;
import org.apache.http.client.CookieStore;
import org.apache.http.message.BasicHeader;

/**
 * http请求的缓存和一些公用的参数 
 *  
 * @author Administrator 
 */  
class MyHttpCookies {  
    /** 每页数据显示最大数 */  
    private static int pageSize = 10;  
    /** 当前会话后的cokie信息 */  
    private static CookieStore uCookie = null;
    /** 公用的HTTP提示头信息 */  
    private static Header[] httpHeader;
    /** HTTP连接的网络节点 */  
    private static String httpProxyStr;  
    /** http请求的公用url部分 **/  
    public static String baseurl = "http://www.2cto.com /River";  
    /** 上下文对象 **/  
    Context context;
  
    public MyHttpCookies(Context context) {  
        this.context = context;  
        /** y设置请求头 **/  
        /** y设置请求头 **/  
        Header[] header = {new BasicHeader("PagingRows", String.valueOf(pageSize))};
        httpHeader = header;  
    }  
  
    /** 
     * 增加自动选择网络,自适应cmwap、CMNET、wifi或3G 
     */  
    @SuppressWarnings("static-access")  
    public void initHTTPProxy() {  
        WifiManager wifiManager = (WifiManager) (context.getSystemService(context.WIFI_SERVICE));
        if (!wifiManager.isWifiEnabled()) {  
            Uri uri = Uri.parse("content://telephony/carriers/preferapn"); // 获取当前正在使用的APN接入点
            Cursor mCursor = context.getContentResolver().query(uri, null, null, null, null);
            if (mCursor != null) {  
                mCursor.moveToNext(); // 游标移至第一条记录,当然也只有一条  
                httpProxyStr = mCursor.getString(mCursor.getColumnIndex("proxy"));  
            }  
        } else {  
            httpProxyStr = null;  
        }  
    }  
  
    public int getPageSize() {  
        return pageSize;  
    }  
  
    public void setPageSize(int pageSize) {  
        this.pageSize = pageSize;  
    }  
  
    public CookieStore getuCookie() {  
        return uCookie;  
    }  
  
    public void setuCookie(CookieStore uCookie) {  
        this.uCookie = uCookie;  
    }  
  
    public Header[] getHttpHeader() {  
        return httpHeader;  
    }  
  
    public String getHttpProxyStr() {  
        return httpProxyStr;  
    }  
}

 

/**
 * 访问业务服务器.
 * 
 * @param url
 * @param paramsMap
 * @return
 */
public static String post(String url, Map<String, String> paramsMap) {
   DefaultHttpClient client = new DefaultHttpClient();
   String responseText = "";
   HttpResponse response = null;
   try {
      /** 保持会话Session **/
      /** 设置Cookie **/
      MyHttpCookies li = new MyHttpCookies(ChatApplication.getInstance());
      CookieStore cs = li.getuCookie();
      /** 第一次请求App保存的Cookie为空,所以什么也不做,只有当APP的Cookie不为空的时。把请请求的Cooke放进去 **/
      if (cs != null) {
         client.setCookieStore(li.getuCookie());
      }
      HttpPost method = new HttpPost(url);
      if (paramsMap == null) {
         paramsMap = new HashMap<String, String>();
      }
      paramsMap.put("accessToken", AppManager.accessToken);
      List<NameValuePair> paramList = new ArrayList<NameValuePair>();
      for (Map.Entry<String, String> param : paramsMap.entrySet()) {
         NameValuePair pair = new BasicNameValuePair(param.getKey(),
               param.getValue());
         paramList.add(pair);
      }
      //第一次一般是还未被赋值,若有值则将SessionId发给服务器

      method.setEntity(new UrlEncodedFormEntity(paramList, "UTF-8"));
      client.getParams().setParameter(
            CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
      response = client.execute(method);
           if (response.getStatusLine().getStatusCode() == 200) {
           /* 获取cookieStore */
               CookieStore cookieStore = client.getCookieStore();
         li.setuCookie(cookieStore);
      }
                   HttpEntity entity = response.getEntity();
      if (entity != null) {
         responseText = EntityUtils.toString(entity);
      }
      } catch (Exception e) {
      e.printStackTrace();
   } finally {
      try {
         client.getConnectionManager().shutdown();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   return responseText;
}

 

转载于:https://my.oschina.net/u/2334469/blog/879102

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值