安卓手机cookie在哪里找到

安卓手机cookie在哪里找到,第1张

cookie方法:一、华为手机2.首先找到华为手机上的浏览器,点击进入浏览器之后,就可以看到右下角的三点。3.点击进入之后,选择设置然后看到高级选项栏,选择网站设置,选择cookies进入即可查看。二、苹果手机1.打开手机设置,点击Safari浏览器。2.下拉到最底部,点击高级,在高级窗口中,点击网站数据。3.进入网站数据后,就可以看到之前浏览网页留下来的Cookie数据了。Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

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()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/10968806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存