关于android如何对cookie的读取!

今天做项目时需要用到cookie读取,于是就乘机学习了下。

1.首先客户端登录成功后会得到一个cookie ,需要把这个cookie保存到本地,然后后面需要请求时加到head。

2.我用的是sharePreference保存key的。

/**

* 保存Cookie

*/

public static void savePreference(Context context,String key, String value) {

SharedPreferences preference = context.getSharedPreferences(COOKIE, Context.MODE_PRIVATE);

Editor editor = preference.edit();

editor.putString(key, value);

editor.commit();//

}

/**

* 得到Cookie

*/

public static String getPreference(Context context,String key) {

SharedPreferences preference = context.getSharedPreferences(COOKIE, Context.MODE_PRIVATE);

return preference.getString(key,"");

}

/**

* 判断cookie是否存在

*/

public static boolean isCookId(Context context) {

SharedPreferences preference = context.getSharedPreferences(GjtcConstant.COOKID, Context.MODE_PRIVATE);

Log.d("cook", preference.getString(SID, ""));

if (preference.getString(SID, "") != null

&& !preference.getString(SID, "").equals("")

&& !preference.getString(SID, "").equals("null")) {

return true;

} else {

return false;

}

}

3.获得cookie并保存到数据库

/**

* 获取cookie 并保存

*/

HttpGet request = new HttpGet(url);

esponse = httpClient.execute(request);

if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

//获得cookie

getCookie(httpClient);

}

private void getCookie(HttpClient httpClient) {

List<Cookie> cookies = ((AbstractHttpClient) httpClient).getCookieStore().getCookies();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < cookies.size(); i++) {

Cookie cookie = cookies.get(i);

String cookieName = cookie.getName();

String cookieValue = cookie.getValue();

if (!TextUtils.isEmpty(cookieName)

&& !TextUtils.isEmpty(cookieValue)) {

sb.append(cookieName + "=");

sb.append(cookieValue+";");

}

}

savePreference(mContext,SID, sb.toString());

}

4.请求时添加到head里去

HttpGet request = new HttpGet(url);

if(GjtcUtils.isCookId(mContext))

{

request.addHeader("cookie", GjtcUtils.getPreference(mContext,GjtcConstant.SID));

}

时间: 2024-12-07 18:16:48

关于android如何对cookie的读取!的相关文章

android本地保存Cookie和还原到cookiestore

保存cookie,读取cookie以及判断cookie是否存在 ```java public class Local { private static SharedPreferences shared; public static void setShared(SharedPreferences shared) { Local.shared = shared; } public static void saveStrCookie(String cookie) { SharedPreference

Android HTTP session &amp;&amp; cookie

HTTP协议与状态保持HTTP协议本身是无状态的,这与HTTP协议本来的目的是相符的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要纪录彼此过去的行为,每一次请求之间都是独立的,好比一个顾客和一个自动售货机或者一个普通的(非会员制)大卖场之间的关系一样.         然而聪明(或者贪心?)的人们很快发现如果能够提供一些按需生成的动态信息会使web变得更加有用,就像给有线电视加上点播功能一样.这种需求一方面迫使HTML逐步添加了表单.脚本.DOM等客户端行为,另一

运用JS设置cookie、读取cookie、删除cookie

运用JS设置cookie.读取cookie.删除cookie JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假 设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来 引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭

mvc存储Cookie和读取Cookie方法

mvc存储Cookie和读取Cookie方法: //存储 HttpCookie cookie = new HttpCookie("User"); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312"); cookie["id"] = HttpUtility.UrlEncode(logid.ToString(), enc); cookie["UserNam

【原创】Android 4.4前后版本读取图库图片方式的变化

Android 4.4前后版本读取图库图片方式的变化 本文讲述Android 4.4(KitKat)前后访问图库以及访问后通过图片路径读取图片的变化 Android 4.4(KitKat)以前: 访问图库(方法一): 1 /** 2 * Access the gallery to pick up an image. 3 */ 4 private void startPickPhotoActivity() { 5 Intent intent = new Intent(Intent. ACTION_

Android &lt;meta-data&gt;元素数据的读取

在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>.<application> .<service>和<receiver>元素中,但不同的父元素,在应用时读取的方法也不同. 1 :在Activity的应用.    xml代码段:   <activity...>       <meta-data android:name="myMsg" andro

Android ndk下用AssetManager读取assets的资源

转自:http://www.cppblog.com/johndragon/archive/2012/12/28/196754.html 在使用 cocos2dx 在 Android 上进行游戏开发时,遇到了奇怪的事情,无论什么代码,都无法读资源文件.不得以只好寻求更高版本的Api. 在Android ndk api level 9 之后,提供了一套称为 AssetManager 的api. 这个api 的工作原理是 - Java通过JNI把getAssets得到的AssetManager传递给一

让Android Volley 支持cookie session 其实很简单!

看以下几步操作即可: 实例化带cookie DefaultHttpClient 网络通信类 /** * 返回请求队列 * @return */ private RequestQueue getRequestQueue() { if (mRequestQueue == null) { DefaultHttpClient httpclient = new DefaultHttpClient(); //非持久化存储(内存存储) BasicCookieStore | 持久化存储 PreferencesC

Android volley添加Cookie

Volley 默认是不支持Cookie的,如何添加Cookie,很是头疼. 看源码后发现HttpStack的子类中都有添加Header的代码. HurlStack  performRequest方法中 HashMap<String, String> map = new HashMap<String, String>(); map.putAll(request.getHeaders()); map.putAll(additionalHeaders); if (mUrlRewriter