java - 解析没有等号(=)的cookie

标签 java android parsing cookies

我正在开发客户端应用程序。大多数应用程序都适用于 WebView。它从 Web 服务器加载多个页面。

授权用户后,我会获取所有cookies并保存在本地。然后,我将通过 CookieManagerCookieSyncManager 将这些 cookie 放入 webView。用户浏览某个页面后,服务器返回相同的 cookie,但这次添加了一个新值。从那时起,我需要能够获取 cookie 的那部分并同步它。

请注意,我不能获取新的 cookie 并将其替换为以前的 cookie,而是找到 cookie 中的新内容并将其添加到我们的当前

我看到了 cookie 解析问题和解决方案。但是服务器返回的内容与那些标准的值对 并不相似。这是 cookie 的样子

PHPSESSID=27dd72de72e1643727c4ddb150b2f988; aes_session=a%3A12%3A%7Bs%3A10%3A%22aaaaaaaa%22%3Bs%3A32%3A%22e116b84c302d763a4f759caa5d178455%22%3Bs%3A10%3A%22bbbbbbb%22%3Bs%3A15%3A%22111.111.111.111%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A40%3A%22Apache-HttpClient%2FUNAVAILABLE+%28java+1.4%29%22%3Bs%3A13%3A%22jjjjjjjj%22%3Bi%3A1372138481%3Bs%3A9%3A%22cccccc%22%3Bs%3A0%3A%22%22%3Bs%3A4%3A%22fail%22%3Bs%3A7%3A%22ddddddd%22%3Bs%3A2%3A%22id%22%3Bs%3A2%3A%2231%22%3Bs%3A8%3A%22eeeeee%22%3Bs%3A7%3A%22ffffffff%22%3Bs%3A4%3A%22ggggggg%22%3Bs%3A9%3A%22hhhhhh%22%3Bs%3A7%3A%22%22%3Bs%3A1%3A%221%22%3Bs%3A6%3A%22iiiiii%22%3Bs%3A1%3A

iiiiii 及其后面的值被添加到这个例子中。

问题是,是否有任何解析器可以处理这种 cookie,或者我是否必须考虑编写一些 regEx?感谢您的帮助!

最佳答案

规范 ( RFC 6265 ) 说 cookie 是名称-值对。根据 RFC 中的语法,等号 ('=') 是强制性的。

因此,实现是否会处理丢失的等号字符是没有实际意义的。没有等号的 cookie 是无效的。您的应用程序……或任何设置这些 cookie 的应用程序……已损坏,应该修复。


FWIW,如果您想指定一个具有空值的名称/值对,在等号 ('=') 和分号 (';') 或 cookie 字符串的末尾之间没有任何内容是合法的。但是规范说“=”是强制性的。


(但是,让我对这个问题感到困惑的是,示例 cookie 似乎没有缺少 '=' 的示例......)

关于java - 解析没有等号(=)的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290700/

相关文章:

java - war 文件有标准的字符编码吗?

java - Azure Functions, "System.Private.CoreLib: Value cannot be null. (Parameter ' 路径 1'). Value cannot be null. (Parameter ' 提供商')"

android - 我应该使用 asyncTask 还是服务来联系我的服务器

python - 使用 pandas 解析错误分隔的文本文件

java - 如何确保集合仅包含接口(interface)的每个实现之一

java - 如果输入值不为空则更新列,否则忽略并保留数据库中列的现有值

android - 使用 ProgressBar 和 AsyncTask 发送短信 |安卓

android - 在 appComponent dagger 2 中动态添加测试模块?

c++ - 将字符串解析为整数数组

arrays - 解析多个 JSON 对象