当前位置:首页 » 安卓系统 » android的cookie

android的cookie

发布时间: 2023-09-23 03:54:23

安卓手机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 怎么判断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之后再与服务器进行交互。

④ Android开发中怎样使用cookieManager来管理cookie

1、首先 在android应用程序开始的activity中的梁空oncreaty()方法中注册cookiemanager。如下:
<span style="font-size:18px;">//设置网络请求cookie
CookieSyncManager.createInstance(this);</span>

2、然后在到橡段瞎网络请求的那个类中设置如下 设置和获取燃链cookie的方法
<span style="font-size:18px;"> protected String getCookie() {
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie("cookie");
if (cookie != null) {
return cookie;
} else {
return "";
}
}

protected void setCookie(String cookie) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie("cookie", cookie);
}</span>

3、最后一步就在urlConnection.openConnectin()的后面设置如下方法:
uc = (HttpURLConnection) new URL(url + "?" + paramsStr.toString()).openConnection();
uc.setRequestProperty("Cookie", getCookie());
<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'宋体';font-size:12.0pt;"><span style="background-color:#344134;">setCookies</span>(uc.getHeaderFields())<span style="color:#cc7832;">;</span>

好了到这里就完成了cookie的设置

3. 过期按需处理一下

附1:cookie的获取

response.headerFields = conn.getHeaderFields();
setCookies(response.headerFields);

/**
* 存储cookie
* @param headerFields
*/
protected void setCookies(Map<String, List<String>> headerFields) {
if (null == headerFields) {
return;
}
List<String> cookies = headerFields.get(COOKIES_KEY);
if (null == cookies) {
return;
}
for (String cookie : cookies) {
setCookie(cookie);
}
}

⑤ 手机怎么开启浏览器的cookie设置,安卓系统的uc


1、手机上打开UC浏览器,点击界面底下三条横线的菜单按钮,在弹出来的窗口上点击“设置”的按钮。

手机UC浏览器是默认开启cookies的,没有专门开启的功能,一般都是在清除记录的时候,根据个人的需要是否勾选清除cookies的,方法如上。

⑥ android webview 如何存储cookie

在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能。同步Cookie到WebView的方法可以参考下面的代码:
/**
* Sync Cookie
*/
private void syncCookie(Context context, String url){
try{
Log.d("Nat: webView.syncCookie.url", url);
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();// 移除
cookieManager.removeAllCookie();
String oldCookie = cookieManager.getCookie(url);
if(oldCookie != null){
Log.d("Nat: webView.syncCookieOutter.oldCookie", oldCookie);
}
StringBuilder sbCookie = new StringBuilder();
sbCookie.append(String.format("JSESSIONID=%s","INPUT YOUR JSESSIONID STRING"));
sbCookie.append(String.format(";domain=%s", "INPUT YOUR DOMAIN STRING"));
sbCookie.append(String.format(";path=%s","INPUT YOUR PATH STRING"));
String cookieValue = sbCookie.toString();
cookieManager.setCookie(url, cookieValue);
CookieSyncManager.getInstance().sync();
String newCookie = cookieManager.getCookie(url);
if(newCookie != null){
Log.d("Nat: webView.syncCookie.newCookie", newCookie);
}
}catch(Exception e){
Log.e("Nat: webView.syncCookie failed", e.toString());
}
}

使用上面的方法可以将Cookie同步到WebView中,这样浏览网页时即可实现免登录。

但是在实际使用过程中会出现Cookie并未保存成功,每次都会跳转到登录页面应为初始化WebView时漏掉了重要的东西。可以参考下面代码设置WebView。

/**
* init WebView Settings
* */
private void initWebViewSettings(){
// myWebView.getSettings().setSupportZoom(true);
// myWebView.getSettings().setBuiltInZoomControls(true);
// myWebView.getSettings().setDefaultFontSize(12);
// myWebView.getSettings().setLoadWithOverviewMode(true);
// 设置可以访问文件
myWebView.getSettings().setAllowFileAccess(true);
//如果访问的页面中有Javascript,则webview必须设置支持Javascript
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setUserAgentString(MyApplication.getUserAgent());
myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
myWebView.getSettings().setAllowFileAccess(true);
myWebView.getSettings().setAppCacheEnabled(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setDatabaseEnabled(true);
}

完成以上两步操作,再次运行程序,就会发现,打开网页后不会再跳转到登录页面了。

⑦ 小米平板4,安卓系统,浏览器里有个,接受cookie,选项,是干什么用的

cookie是临时文件的意思,保存浏览网页的痕迹,使得再次上同一页面的时候提高网速,判断你是否登录过这个网站,有些可以帮你自动登录的。

在浏览器的“设置”选项中找到“隐私和安全”选项,那里有“cookie”的设置。方法: 打开浏览器--工具--INTERNE选项---隐私--高级--覆盖自动处理COOKIE--总是允许会话COOKIE--确定。

cookie是临时文件的意思,保存浏览网页的痕迹,使得再次上同一页面的时候提高网速,判断你是否登录过这个网站,有些可以帮你自动登录的。在浏览器的“设置”选项中找到“隐私和安全”选项,那里有“cookie”的设置。方法:打开浏览器--工具--INTERNE选项---隐私--高级--覆盖自动处理COOKIE--总是允许会话COOKIE--确定

热点内容
sql存储过程返回多个结果 发布:2025-01-28 03:24:03 浏览:462
长安欧尚科赛哪个配置值得购买 发布:2025-01-28 03:19:35 浏览:115
c全排列算法 发布:2025-01-28 03:18:16 浏览:753
梵蒂冈顶级时装ftp 发布:2025-01-28 03:03:36 浏览:694
手游脚本有前途吗 发布:2025-01-28 02:46:55 浏览:378
抓包编程 发布:2025-01-28 02:42:41 浏览:929
安卓平板上怎么设置热点 发布:2025-01-28 02:36:33 浏览:717
如何在手机上压缩图片 发布:2025-01-28 02:34:09 浏览:989
服务器ip挂上公网 发布:2025-01-28 02:31:15 浏览:978
吃鸡配置需要什么条件 发布:2025-01-28 02:26:15 浏览:9