java - 如何从 android.webkit.CookieManager 获取 httpOnly cookie

标签 java android cookies webkit

我需要知道 webkit 浏览器中的 cookie 是否为 httpOnly。 使用方法 getCookie(URL) 只返回一个包含 cookie 名称和值的字符串。

我可以很容易地从 java.net.CookieManager 获取它,但我不知道是否可以将 android.webkit.CookieManager 转换为 java.net.CookieManager。

更新 1 我放弃了那样做。我的猜测是我想做的是不可能的。 我试图覆盖 shouldInterceptRequest 方法以使用 HttpUrlConnection 打开一个新连接并返回一个新的 WebResourceResponse 以及从 HttpUrlConnection 返回的 ImputStream 但是,似乎 webview 在调用来自 shouldInterceptRequest 后不接受 javascript。 :-(

最佳答案

这可以通过反射来完成,例如:

CookieManager cookieManager = CookieManager.getInstance();

Field mChromeCookieManager = cookieManager.getClass().getDeclaredField("mChromeCookieManager");
mChromeCookieManager.setAccessible(true);

Object awCookieManager = mChromeCookieManager.get(cookieManager);

Method getCookie = awCookieManager.getClass().getDeclaredMethod("nativeGetCookie", String.class);
getCookie.setAccessible(true);

Object cookie = getCookie.invoke(awCookieManager, url);

(在 Android 5.1.1 上测试)

关于java - 如何从 android.webkit.CookieManager 获取 httpOnly cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583740/

相关文章:

java - Hibernate:无法解析实体类中的表

java - 如果一个实例同时显示在 Autowiring 和 bean 中,Spring 将使用哪一个

java - Android - 如何计算下载文件所需的时间?

php - 发送 header 后设置 cookie。为什么它有效?不应该

java - 解析 JSON 对象文件并转换为 JSON 数组

java - java中如何插入日期和时间

android - 如何制作组合随机数矩阵

java - Android 线程安全的 SharedPreferences

ruby-on-rails - 通过 Rack 中间件向 Rails 添加 'SameSite=None;' cookie?

php - 未从 SQL 查询中获取所有结果