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 的相关文章

  • 设置文本视图 Android 的文本颜色

    在 string xml 文件中我使用以下标签
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • android edittext中的字符映射

    我想让我的编辑文本就像我写字符 g 时一样 它是相关的映射自定义字符应该写成印地语中的 我认为应该有字符映射 但没有知识任何人都可以帮助我 怎么做 其他应用程序https play google com store apps details
  • 如何获取每个StorageVolume的可用大小和总大小?

    背景 谷歌 悲伤 计划破坏存储权限 https www xda developers com android q storage access framework scoped storage 这样应用程序将无法使用标准文件 API 和文件
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • Recyclerview 动态部分不使用任何第三个库

    我想将标头添加到 recyclerview 我正在尝试使用来实现它 Override public int getItemViewType int position depends on your problem if position 0
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt

随机推荐

  • 每次我发出 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 我对处理我的请求的所有其他解决方案持开放态度