java - 由 : java. lang.IllegalArgumentException 引起:cookie 值或属性中的控制字符

标签 java web cookies character

enter image description here

enter image description here

我该如何解决这个问题,这是我在堆栈溢出中的第一个问题。我真的希望有人能给我一些建议来解决这个问题。

最佳答案

版本 0 cookie 值对允许的字符有限制。它只允许 URL 安全字符。其中涵盖字母数字字符 (a-z、A-Z 和 0-9) 以及少数词汇字符,包括 -_.~%。所有其他字符在版本 0 cookie 中均无效。

最好的办法是对这些字符进行 URL 编码。这样,URL 中不允许的每个字符都将以 %xx 形式进行百分比编码,该形式作为 cookie 值有效。

因此,在创建 cookie 时执行以下操作:

Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
// ...

读取 cookie 时,执行以下操作:

String value = URLDecoder.decode(cookie.getValue(), "UTF-8");
// ...

引用此链接:

java.lang.IllegalArgumentException: Control character in cookie value or attribute

关于java - 由 : java. lang.IllegalArgumentException 引起:cookie 值或属性中的控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62019877/

相关文章:

java - 比较 ArrayList 中的元素值

javascript - 垂直或水平页面滚动

javascript - Jquery hack删除文本框中输入的字符串的一部分

express - axios支持Set-Cookie吗?是否可以通过axios HTTP请求进行身份验证?

java - 对于 DocumentSnapshot 类型,错误 foreach 不适用于类型意味着什么?

java - BigDecimal 不计算除法

java - Camel onException() 未触发

php - 在 root 的 android 平板电脑上本地 Web 服务器的缺点?

javascript - 设置 sameSite ="none"和安全 ="true"未修复 Chrome 引发的新 CORS 错误

javascript - 浏览器客户端存储又名大 Cookie