androidcookies
⑴ 如何打开安卓手机的cookie功能
cookie功能就是避免你上网时重复输入用户名,密码等内容。只有在浏览器里设置,以uc浏览器为例,在设置--安全设置--保存密码--选择自动保存密码,然后再把经常浏览的网页保存书签就行了,当然有的网页还会提示你“下次自动登录''这个也要勾上。
⑵ 安卓手机cookie在哪里找到
cookie方法:一、华为手机2.首先找到华为手机上的浏览器,点击进入浏览器之后,就可以看到右下角的三点。3.点击进入之后,选择设置然后看到高级选项栏,选择网站设置,选择cookies进入即可查看。二、苹果手机1.打开手机设置,点击Safari浏览器。2.下拉到最底部,点击高级,在高级窗口中,点击网站数据。3.进入网站数据后,就可以看到之前浏览网页留下来的Cookie数据了。Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
⑶ 如何管理安卓中的Cookie
Cookie管理是大家在做安卓app开发中难以避免的问题。我在此发表一些关于Cookie管理的拙见。
Cookie是什么
Cookie最重要的作用是会话识别(SeesionId)和状态长期保持(在浏览器保存需要长期保持的数据)。
注意,这些工作并不是必须通过Cookie进行,也可以约定提交数据格式和提交数据格式,固定其中附加数据字段来替代Cookie。但是不推荐这么做,因为如果涉及到与WebView交互,就需要把Json中得数据转化成Cookie,会增加不必要的工作量和犯错的几率。而且HttpClient提供了这个工具,很完善,为什么不用呢。
Cookie在安卓中的使用方式--标示会话,附加信息
1.通过Session标示一次会话,举个例子:注册时,判断客户端注册错误次数(注册次数已经超过限制,显示验证码)
2.传递附加数据,举个例子:传递单点登陆的token。
Cookie可能存放的位置--CookieStore,CookieManager
1.Httpclient会存储当次请求的cookie内容,存储位置在 httpClient.getCookieStore 但是Apache建议自定义Cookie存储方式,因为Cookiestore默认把Cookie放在Arraylist里很容易被系统回收,参见[1]。
2.WebView会存储Cookie在CookieManager,具体使用方式,后续的文章会讲这里不是重点。
如何保存Cookie--中间变量,SharedPreference
通常HttpClient中得Cookie不能直接与WebView中得Cookie共享,而且HttpClient中的Cookie需要进一步修改才能给WebView用,所以这里需要一个中间变量(这里叫做CookieMap)来管理Cookie。每次请求的时候都要刷新CookieMap,我推荐的Cookie管理方式是只增加、修改不删除。每次请求完成都要进行一次Cookie同步,如果app要求保持登陆状态的需求,也可以把cookie放入Preference。代码如下:
List<Cookie> cookieList = httpClient.getCookieStore().getCookies();
if (context == null || cookieList == null || cookieList.size() == 0) {
return;
}
SharedPreferences preferences = context.getSharedPreferences(Constant.HTTPHEAD, Context.MODE_PRIVATE);
Editor edit = preferences.edit();
for (Cookie cookie : cookieList) {
edit.putString(cookie.getName(), cookie.getValue());
httpCookiesMap.put(cookie.getName(), cookie);
}
edit.commit();
请求前处理Cookie
HttpClient
将Cookie放入CookieStore中
httpClient.getCookieStore().addCookie(cookie)
或者在Request的Header中Setcookie
注意,如果进行此操作,就不要保留httpclient中的Cookie,否则容易造成给服务器提交的Request的Header中包含两个Cookie的情况,会造成有的服务器混乱比如我们的Ngix。
// 由于自行处理cookie所以要清理client管理的cookie否则容易出现两个cookie头的情况
httpClient.getCookieStore().clear();
String strHeader =getCookiesForHttpHeader(context);
request.setHeader(Constant.COOKIE, strHeader);
HttpResponse response = httpClient.execute(request);
WebView
如果Api和Webview所请求的页面在不同于(正常也不会在同一个域),那么就要求重新设置Cookie的域(Domain)和Path,这里鼓励把Path范围设置的大一些否则有些请求比如(Ajax,Jsonp)可能得不到Cookie。
cookieManager.setCookie(url, key + "=" + cookie.getValue() + ";domain=" + "xxxx.com"+";path=/");
清理Cookie
如果使用cookie来判断是否登录的话,则只清理本地CookieMap和SharedPreference中的Cookie是不够的。还需要清理掉WebView中的对应的Cookie和HttpClient中的Cookie。否则下次登陆依然是登陆状态。
// 清理内存cookie
httpCookiesMap.clear();
// 清理httpclientcookie
httpClient.getCookieStore().clear();
// 清理掉WebViewCookie
CookieManager.getInstance().removeAllCookie();
CookieSyncManager.getInstance().sync();
// 清理preferencecookie相关的项目
SharedPreferences preferences = context.getSharedPreferences(Constant.HTTPHEAD, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.remove(Constant.ACCOUNT);
editor.remove(Constant.NICKNAME);
editor.remove(Constant.PHPSESSID);
editor.commit();
⑷ 关于android中cookies的使用
描述cookies的性质,解释cookies是怎样被用到sessions中的
Http 的状态管理机制,指定了一种方法。这种方法可以 利用 Http 的 requests 和 responses 创建具有状态的 session.
通常来说,Http 请求 或者 返回,两两之间应该是相互独立的。然而,状态管理机制(the state management mechanism),可以使 客户端(clients) 和 服务器(servers)可以通过把这些信息放进一个上下文变量中来实现状态信息的交换,这种方式被称作 Session.这些被用来创建 和维护session的状态信息被称作 cookie.
一个Cookie是一个数据片段,它可以被存储在浏览器的缓存中.如果你访问过一个网站,并且再次访问它的时候,这些cookie数据就可以用来识别你是一个“回头客”,说明你之前访问过该网站。Cookies使状态信息的存在成为可能,例如在线的购物车,可以将信息存储起来。一个Cookie可以短期存在,为单个web页面的session维持信息,因此 除非你关闭浏览器,否则一个cookie可以长期存在,维持信息 一个星期或者一年。
CookieHandler CallBack Mechanism
描述当你访问一个页面的时候 一个cookie handler 是如何被调用的,并且告诉你 如何设置一个 cookie handler
Http 状态的管理是通过java SE中的java.net.CookieHandler这个类来实现的。
一个CookieHandler对象提供了一个回调机制,这些回调机制提供给 Http 状态管理一些规则。而这些规则是在Http protocol Handler 内部实现的。
URLs 使用 HTTP 作为协议,new URL("http://example.com")新建一个URLs对象来作为例子,这个会使用HTTP protocol handler.这个 HTTP protocol handler回调 CookieHanlder对象的方法,如果CookieHandler中有设置的话,就可以进行状态管理。
CookieHandler是一个抽象类,它有两对相互对应的方法。
第一对:getDefault()和setDefault(cookieHandler)方法
⑸ 安卓cookie,cookie是什么cookie是什么
cookie只是网页缓存,安卓是没有cookie的。
比如一个网站xxxx.com,登陆页为xxx.com/login.jsp,登陆方式为get,也就是xxx.com/login.jsp?username=xx&password=xx。登陆成功后从此页都取得了Json值,但是用http来获取另一个页面的Json时就是null,这就是典型的cookie问题,因为这里每一个Json页面都有cookie检测。需要android请求的时候加上cookie在可以顺利访问。
⑹ android 怎么判断cookie有没有到期
Cookie实际上是一小段文本信息。在Web程序中,客户端浏览器请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
Cookie的失效时间由maxAge属性决定,单位为秒(Second)。Cookie中通过getMaxAge()方法与setMaxAge(int maxAge)方法来读写maxAge属性。从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期。
对于android客户端,登录成功后服务器会向客户端颁发一个Cookie,客户端将Cookie持久化到本地。当客户端再次请求该服务器时,客户端会把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。对于Cookie的有效期,是在客户端本地判断的,Cookie有效则可以向服务器进行请求;Cookie失效则需重新登录获取新的Cookie之后再与服务器进行交互。
⑺ 如何管理安卓中的Cookie
通常HttpClient中得Cookie不能直接与WebView中得Cookie共享,而且HttpClient中的Cookie需要进一步修改才能给WebView用,所以这里需要一个中间变量(这里叫做CookieMap)来管理Cookie。
每次请求的时候都要刷新CookieMap,我推荐的Cookie管理方式是只增加、修改不删除。每次请求完成都要进行一次Cookie同步,如果app要求保持登陆状态的需求,也可以把cookie放入Preference。