android 6.0版本下WebView如何设置cookie?

android 6.0版本下WebView如何设置cookie?,第1张

我们在android中访问网络经常会用到Apache的HttpClient,用此类去访问网络获取数据,

是在写android界面的时候又时不时的会用到一些WebView组件,这时候访问一个以经登录的页面的时候cookie设置就有个问题

在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢?

CookieSyncManager和CookieManager就是做这种事的,下面来看代码里怎么设置Cookie让WebView也保持登录状态:

Java代码

/**

* 同步一下cookie

*/

public static void synCookies(Context context, String url) {

CookieSyncManager.createInstance(context)

CookieManager cookieManager = CookieManager.getInstance()

cookieManager.setAcceptCookie(true)

cookieManager.removeSessionCookie()//移除

cookieManager.setCookie(url, cookies)//cookies是在HttpClient中获得的cookie

CookieSyncManager.getInstance().sync()

}

在android里面在调用webView.loadUrl(url)之前一句调用此方法就可以给WebView设置Cookie

注:这里一定要注意一点,在调用设置Cookie之后不能再设置

Java代码

webView.getSettings().setBuiltInZoomControls(true)

webView.getSettings().setJavaScriptEnabled(true)

这类属性,否则设置Cookie无效。

Request经常都要携带Cookie,上面说过request创建时可以通过header设置参数,Cookie也是参数之一。就像下面这样:

然后可以从返回的response里得到新的Cookie,你可能得想办法把Cookie保存起来。

但是OkHttp可以不用我们管理Cookie,自动携带,保存和更新Cookie。

方法是在创建OkHttpClient设置管理Cookie的CookieJar


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

原文地址: http://outofmemory.cn/tougao/11146309.html

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

发表评论

登录后才能评论

评论列表(0条)

保存