无法从Java中的cookie获取值。值包含逗号。
我无法从包含逗号的cookie中获取值。它返回的不是完整的字符串,而是截断到第一个逗号的字符串。例如:无法从Java中的cookie获取值。值包含逗号。,java,cookies,Java,Cookies,我无法从包含逗号的cookie中获取值。它返回的不是完整的字符串,而是截断到第一个逗号的字符串。例如: // cookie value = var1,var2,var3 String cookieVal = cookie.getValue(); //cookieVal now is "var1" instead of "var1,var2,var3" 及 我做错了什么。逗号是http头值定义的一部分,因此url在cookie值中编码逗号 URLEncoder.encode(cookieValu
// cookie value = var1,var2,var3
String cookieVal = cookie.getValue();
//cookieVal now is "var1" instead of "var1,var2,var3"
及
我做错了什么。逗号是http头值定义的一部分,因此url在cookie值中编码逗号
URLEncoder.encode(cookieValue);
我发现:
“此[cookie value]字符串是一个字符序列,不包括
分号、逗号和空格。如果需要放置
名称或值中的数据,某些编码方法,如URL样式%XX
建议使用编码,但未定义或修改编码
必需的“
报告说:
非正式地说,Set Cookie响应头包含令牌集-
Cookie:,后跟一个或多个Cookie的逗号分隔列表。
每个cookie都以名称=值对开头,后跟零或更多
分号分隔的属性值对
更新:在您澄清您正在解析来自谷歌的cookie之后:我查看了所有我的uu utmX cookie,没有一个包含逗号。这里的分隔符是|
或url编码的:
请查看。它说:
此类支持两个版本0
(Netscape)和第1版(RFC)
2109)cookie规范。通过
默认情况下,cookie是使用
版本0以确保最佳性能
互操作性
如果你看到这个方法,你会发现
对于版本0 cookie,值不应包含空格、括号、括号、等号、逗号、双引号、斜杠、问号、at符号、冒号和分号。空值在所有浏览器上的行为方式可能不同
编辑:只要看看谷歌的东西。也许可以尝试将版本设置为1,看看它是如何工作的。您确定需要在cookie中存储一个集合吗?IMHO Cookie不应用于存储标识符以外的数据。数据存储应尽可能在服务器端完成。Google在其“\uuuUTMV”cookie中使用逗号,我必须解析Google cookie.Ah。可以当然,你必须坚持Lombo的答案;-)正如我在上面写的:我没有设置cookie。我只是想解析谷歌的umtv cookie。@mynthon-给我你网站的链接。我不相信这个uu_u-utm cookie已经不能显示了,因为它还没有进入生产阶段,但我已经在我的网站上准备了演示:好奇..非常好奇。我建议你提交一份bug报告。你最终解决了你的问题吗?你提交错误报告了吗?没有,没有解决方案。我已经解决了google analytics的bug(gdata问题,找不到更好的地方了)。您是否找到了一种方法来强制Java阅读版本1(RFC2109)?
URLEncoder.encode(cookieValue);