CrazyDailyQuestion
CrazyDailyQuestion copied to clipboard
2019-9-16:说说cookie的工作机制以及webview如何与http共享cookie?
Cookie的工作机制
将一些基本信息存放在本地,比如身份识别信息,用户在本站的一些信息,当需要用到的时候,提取使用。这些信息就被称作cookie。
cookie的存放
cookie信息有服务器向客户端发送,在头信息中有下边这样的信息
Set-Cookie:user=ZhangSan
这样客户端接到之后就会存放起来,这个信息被称为cookie。
cookie的使用
当一个cookie存在的时候,并且条件允许,就会被使用。cookie的值会被放到http请求头中,类似于下边这样
Cookie:user=ZhangSan
服务端接收到这个信息之后,就会根据这个信息作出相应的判断。
WebView和http共享cookie
先将http中的cookie取出来,然后放到webview中 参考自 Android 应用内HttpClient 与 WebView 共享 Cookie
DefaultHttpClient httpclient=....;
String toUrl="https://cap.cityu.edu.hk/studentlan/details.aspx.....";
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (!cookies.isEmpty()){
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
//sync all the cookies in the httpclient with the webview by generating cookie string
for (Cookie cookie : cookies){
String cookieString = cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain();
cookieManager.setCookie(toUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
}
楼上这个方法,我用过。。
cookie是本身浏览器(请求方请求的一些数据信息,比如一些电商网站的游客的购物车),发送到服务器,但是服务器不需要保存这些数据所以在服务器上使用header的setcookies XXX=BBBB 发还本地保存。本地请求时候会在header 中带上cookies: XXXX=BBBB 早前可以进行用户验证,