Android CookieManager setCookie 创建多个cookie

2024-03-31

在我的 Android 应用程序中,我有一个网络视图。它从多个域加载 URL。我需要删除特定域中的所有 cookie。我想保留来自其他域的 cookie。但我需要删除一个域中的所有 cookie。我对处理我的请求的所有其他解决方案持开放态度。 (请注意,域同时使用 http 和 https)

但是当我尝试使用 CookieManager.setCookie 时,该域的所有可用 cookie 都没有删除。当我尝试写入这些键时,会出现多个 cookie 键。

我在下面附上我的代码。您可以在注释行中找到结果。在故事的最后我得到了这个饼干。多个值的注意事项:

"userid=12%34; token=12ased; remember_check=0; userid='-1'; token='-1'; remember_check='-1';"

我的辅助函数分割 cookie 字符串以获取 cookie 键:

public static Vector<String> getCookieAllKeysByCookieString(String pCookies) {
    if (TextUtils.isEmpty(pCookies)) {
        return null;
    }
    String[] cookieField = pCookies.split(";");
    int len = cookieField.length;
    for (int i = 0; i < len; i++) {
        cookieField[i] = cookieField[i].trim();
    }
    Vector<String> allCookieField = new Vector<String>();
    for (int i = 0; i < len; i++) {
        if (TextUtils.isEmpty(cookieField[i])) {
            continue;
        }
        if (!cookieField[i].contains("=")) {
            continue;
        }
        String[] singleCookieField = cookieField[i].split("=");
        allCookieField.add(singleCookieField[0]);
    }
    if (allCookieField.isEmpty()) {
        return null;
    }
    return allCookieField;
}

我收到礼物饼干:

// I take cookie string for specific URL
mCookieManager = CookieManager.getInstance();
String url2="https://mysite.com";
String cookieString = mCookieManager.getCookie(url2);
Toast.makeText(mContext, "cookie string:\n"+cookieString, Toast.LENGTH_SHORT).show();
// result is: userid=12%34; token=12ased; remember_check=0;

然后我打电话要求更换旧饼干。

Vector<String> cookie = CookieUtil.getCookieAllKeysByCookieString(cookieString);
if (cookie == null || cookie.isEmpty()) {
    Toast.makeText(mContext, "cookie null", Toast.LENGTH_SHORT).show();
}
if (cookie != null) {
    int len = cookie.size();
    Toast.makeText(mContext, "cookie number: "+len, Toast.LENGTH_SHORT).show();
    // result is, cookie number: 3
    String cookieNames="";
    for (int i = 0; i < len; i++) {
        cookieNames += "\n"+cookie.get(i) ;
        mCookieManager.setCookie(url2, cookie.get(i) + "='-1';");
    }
    Toast.makeText(mContext, "cookieNames:\n"+cookieNames, Toast.LENGTH_SHORT).show();
    // result is: "cookienames: userid token remember_check"

    mCookieSyncManager.sync();

    cookieString = mCookieManager.getCookie(url2);
    Toast.makeText(mContext, "cookie string:\n"+cookieString, Toast.LENGTH_SHORT).show();
    mCookieSyncManager.sync();
    // result is: "userid=12%34; token=12ased; remember_check=0; userid='-1'; token='-1'; remember_check='-1';"
}

Edit:
我也尝试过像这样设置Cookie:

mCookieManager.setCookie(url2, cookie.get(i) + "=-1;");
mCookieManager.setCookie(url2, cookie.get(i) + "=-1");

Edit2:setCookie的签名是这样的:

 /**
 * Sets a cookie for the given URL. Any existing cookie with the same host,
 * path and name will be replaced with the new cookie. The cookie being set
 * must not have expired and must not be a session cookie, otherwise it
 * will be ignored.
 *
 * @param url the URL for which the cookie is set
 * @param value the cookie as a string, using the format of the 'Set-Cookie'
 *              HTTP response header
 */
public void setCookie(String url, String value) {
    throw new MustOverrideException();
}

虽然我在 cookie 字符串中得到相同的键("userid=12%34; token=12ased; remember_check=0; userid='-1'; token='-1'; remember_check='-1';")他们会有不同的主机或路径吗?


我也有过类似的经历Cookie管理器 http://developer.android.com/reference/android/webkit/CookieManager.html在安卓中。设置相同的 cookie 确实会将其添加为新的 cookie。

请尝试实施这个解决方案 https://stackoverflow.com/a/11621738/1557187。它将使您能够flush你想要的饼干remove然后您就可以根据需要再次设置。

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android CookieManager setCookie 创建多个cookie 的相关文章

  • EditText 中的验证允许 IP 或 Web Url 主机

    我需要对我的 EditText 进行验证 以便它允许我输入有效的 IP 地址格式 即示例 132 0 25 225 or 网址格式 www 例如 www example com 逻辑是 如果用户首先输入任何数值 则验证 IP 将执行操作 否
  • Android 上的 Firebase:如何检查 Firebase 身份验证失败原因?

    我在 Android 上使用 Firebase 和 Firebase Auth 功能 I try FirebaseAuth signInWithEmailAndPassword如果失败 我想知道为什么登录过程失败 The signInWit
  • 使用 APDU 命令的有效 NFC 读取比特率是多少?

    我目前正在使用 Android IsoDep trancieve 函数发送和接收累计 1628 字节的数据 该函数分布在 35 个 APDU 命令 选择应用程序 身份验证 读取 中 字节计数包括返回的 MAC 校验和以及由 transcie
  • Android Studio:lambda 不起作用[重复]

    这个问题在这里已经有答案了 当尝试使用 lambda 表达式时 我遇到了一些 Gradle 构建错误 错误 41 100 错误 source 1 7 不支持 lambda 表达式 使用 source 8 或更高版本来启用 lambda 表达
  • 连接到不可发现的蓝牙设备

    我正在开发一个安卓应用程序 只是一个一般性问题 是否可以连接到公开不可发现的设备 提前致谢 如果您之前已与该设备配对 则即使该设备未处于可发现模式 也可以再次连接到该设备 参见这篇文章 以编程方式连接到配对的蓝牙设备 https stack
  • 访问角落里的存储

    我能找到的与文件存储有关的最接近文档的是这个帖子 http nookdeveloper zendesk com entries 20257971 updated what are the size constraints on my app
  • 为什么按钮上的 maxWidth 不起作用以及如何解决它?

    我的布局上有两个按钮 在大屏幕设备 平板电脑 上我想限制它们的宽度 这样它们看起来就不会很荒谬 我希望使用 maxWidth 属性 但它显然在我的场景中没有任何作用 这是布局定义 按钮使用布局的整个宽度 忽略 maxWidth 中的任何值
  • 如何在 Android 上创建 YouTube 的双击手势?

    我在 Android 上有 exoplayer 的应用程序 我已经创建了 youtube双击手势用动画向前或向后跳跃 10 秒 如何在双击时创建具有波纹效果的半圆 像这样 这个怎么做 我也想实现这样的功能 所以我自己编写了它来 复制 You
  • 从多个选项卡中的编辑文本字段获取文本

    我正在尝试创建一个使用选项卡作为输入表单的 Android 应用程序 基本上 我希望对其进行设置 以便用户可以在一个选项卡上输入一些信息 然后提交该信息 或者转到另一个选项卡并输入更多信息 然后从两个选项卡提交信息 我正在使用操作栏和片段来
  • Android Web Intent 问题

    G day 免责声明 我不是 Android 开发人员 我正在对我所描述的问题进行质量检查 我用来描述这个问题的技术术语可能是错误的 我正在测试一个 Android 应用程序 该应用程序在其清单中描述它可以使用 type 的地址处理 Web
  • 加快 ImageView 中的缩放功能

    我目前正在处理非常大的图像 7 10mb 由于多种原因无法调整大小或压缩 现在 我们的想法是在自定义 ImageView 中显示它们 使用户能够进行双击缩放 捏合缩放等 我使用这个库来完成这项工作 https github com Mike
  • Android 改变 ImageView / Bitmap 的颜色

    我需要找到一种方法来改变 Android 中位图的颜色 我需要在我的应用程序中平滑地替换 更改椭圆形图像的颜色 具体取决于int价值 我需要类似的东西myValue 5比改变我的图像的颜色RED and if myValue 322将颜色更
  • 从手机访问本地主机[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 如何从 Facebook 邀请好友到 Android 应用程序? - 给出错误

    我正在开发一个 Android 应用程序 我正在努力将 邀请朋友 功能添加到我的应用程序中 它转到我的AppLinkUrl成功但显示错误 我的清单代码如下
  • 在 Android 中上传文件出现内存不足错误

    我的上传代码如下 String end r n String twoHyphens String boundary try URL url new URL ActionUrl HttpURLConnection con HttpURLCon
  • Android:确定 2.2 及更高版本上的摄像头数量

    我的应用程序需要在 Android 2 2 及更高版本上运行 我需要一种方法来确定可用摄像机的数量 有很多帖子解决了这个问题 但我找不到一个有效的 一种解决方案是简单地检测操作系统版本 任何 2 2 版本的设备都仅限于 1 个摄像头 即使该
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 具有矢量可绘制的 ImageView 的 Resources$NotFoundException

    我遇到了崩溃 Resources NotFoundException用于在活动创建时绘制的矢量 21 日前崩溃 安卓工作室2 1 支持库24 0 0 Gradle插件2 1 0 目标SDK 23 最小SDK 15 buildTools版本
  • putFragment() - 片段 x 当前不在 FragmentManager 中

    上面的标题被问了很多次 但答案似乎与FragmentStatePagerAdapter这与我的问题无关 我正在使用该方法putFragment Bundle String Fragment 直接地 The 安卓文档 http develop

随机推荐

  • 每次我发出 http 请求时应用程序都会崩溃

    这是我的代码 每次我触摸 imageview 我的应用程序都会等待大约 5 秒然后崩溃 我有互联网权限 在服务器端 我有一个 php 页面 它读取 GET 并将其插入数据库中 public class Home extends Activi
  • MySQL显示表中每小时的条目数

    新链接 结果减少 1 https i stack imgur com 8G1Jh png我需要在表中回显给定日期每小时的条目数 即使它们是 0 这似乎正在发生 但以一种奇怪的方式 如您所见 小时列没有发挥作用这应该是 0 00 1 22 0
  • 如何在 Dart 中测试流

    如何在 Dart 中测试流 我有这个代码 test words are reading sequentially correct WordTrackerInterface wordTracker WordTracker byContent
  • 如何在 Android 中创建 url 预览?

    我想在分享时显示 Android 中任何网址的预览 就像 Facebook 或 Whatsapp 中显示的那样 预览必须包含网页中的图像和链接的简短描述 我想过从元数据和图标中获取信息 但图标大小非常小 并且元数据并不总是存在 例如 在 Q
  • 防止 Angular NativeScript WebView 通过捏合缩放进行缩放

    所以我有一个使用 Angular NG 5 1 1 Angular 7 x 的 Nativescript 应用程序 我有一个带有网络视图的视图 ViewChild myWebView webViewRef ElementRef
  • Webview 在冰淇淋三明治中显示白色空白页

    在我的网络视图中 我加载了一个 URL 其中包含电视频道直播的嵌入式视频播放器 它在除 ICS 4 之外的所有 Android 操作系统版本中都能正常工作 第一次它可以很好地播放视频 但是当我返回并再次进入包含视频的页面时 视频不会加载并显
  • 查找目录中最后创建的FILE,C++

    尽管我在网上搜索过 但没有任何像我这样的问题 我的问题是 我想获取目录中最后创建的文件的名称 我的系统将在该代码的目录中创建来自我的相机的 png 文件 我希望我的代码采用最后创建的文件 我想用这段代码来做 string processNa
  • 在 pyspark 中找不到 col 函数

    在pyspark 1 6 2中 我可以导入col函数由 from pyspark sql functions import col 但当我尝试在GitHub 源代码 https github com apache spark blob br
  • 寻找可与 Google App Engine 配合使用的 python 视频编辑/处理功能

    是否知道任何可与 Google App Engine 配合使用的 python 视频编辑 处理库或框架 我需要在我的 App Engine 网站上以语法方式编辑视频文件 添加配乐 在顶部分层视频剪辑等 由于大多数视频 音频编解码器都是用 C
  • pip install - PermissionError:[Errno 13]权限被拒绝

    环境 视窗8 1 Python 3 5 Anaconda Issue 当我做pip install sklearn upgrade 我收到以下错误 Exception Traceback most recent call last File
  • 链接到 OSX 上的 iOS 模拟器二进制文件

    我很好奇如果我链接到 Mac 应用程序中的 iOS 模拟器框架会发生什么 因此 我将 UIKit 复制到它自己的文件夹中 因此框架搜索路径不会包含所有 iOS 模拟器框架 就像 CoreFoundation 在 Mac 和 iOS 上都存在
  • 无法在 Codeigniter 中取消链接文件

    在我的项目中我有一个文件夹secure在根中 项目包如下所示 application secure system 在安全文件夹内 我正在使用表单提交上传一些图像 config1 upload path secure ext end expl
  • Qt Widget 应用程序“库未注册”错误

    我最近刚刚开始使用 Qt 并创建了一个简单的 Qt Widgets 应用程序 当我构建并运行应用程序时 即使我创建了一个没有新代码的新项目 我收到以下错误消息 mincore com oleaut32 dispatch ups cpp 21
  • 如何在 Windows 中从 PHP 函数 exec() 获取 PID?

    我一直用 pid exec usr local bin php file php args gt dev null echo 但我正在使用 XP 虚拟机开发 Web 应用程序 我不知道如何在 Windows 中获取 pid 我在cmd上尝试
  • 使用 Freebase MQL 读取 google api 的非唯一查询

    看来我只能使用新的 freebase MQL 读取 api 执行唯一查询 即在查询中包含实体 id 以下是对 id 和 type 的搜索 https www googleapis com freebase v1 mqlread query
  • Python在函数调用之外获取变量名[重复]

    这个问题在这里已经有答案了 让我们有下面的代码 def f a b c import inspect stack inspect stack How to know the original variable names i e arg1
  • 按 Pandas DataFrame 中的连续索引分组

    我正在使用 python 编写传感器数据分析代码 我根据某些条件从 DataFrame 示例中的陀螺仪数据 中获取行 import pandas as pd gyro pd read csv gyroOutput csv above gyr
  • 可以在 PHP 的类中使用静态常量吗?

    我预计以下内容会起作用 但似乎没有
  • 将可点击的 SVG 图像插入 Sphinx 文档

    我有 SVG 图像文件 其中有多个节点 每个节点都与 URL 关联 如果我直接在浏览器中打开此文件 我可以单击每个节点 它将打开不同的 URL 但是 当我在 Sphinx 文档中使用这张图片时 它不起作用 图片作为一个整体呈现 所以我需要通
  • Android CookieManager setCookie 创建多个cookie

    在我的 Android 应用程序中 我有一个网络视图 它从多个域加载 URL 我需要删除特定域中的所有 cookie 我想保留来自其他域的 cookie 但我需要删除一个域中的所有 cookie 我对处理我的请求的所有其他解决方案持开放态度