创建Cookie抛出异常:java.lang.IllegalArgumentException: Control character in cookie value

调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。 
  名字和值都不能包含空白字符以及下列字符:[ ] ( ) < > = , " / ? @ : ;

错误出在response.addCookie(cookie);//cookie 是一个Cookie实例。

J2EE Doc里面的,cookies只支持ASCII字符,而且不能有逗号,分号,
空白。或者以$开头。名字在创建后不能改变。如果要存储中文的,先用URLEcode编码,在存入,取出的时候,用decode解码。

在保存cookie之前把值编码下:

URLEncoder.encode(cookieValue, "UTF-8");

取cookie值时解码:

URLDecoder.decode(localCookieValue, "UTF-8");

时间: 2024-11-06 01:41:39

创建Cookie抛出异常:java.lang.IllegalArgumentException: Control character in cookie value的相关文章

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

java.lang.IllegalArgumentException: Control character in cookie value or attribute. 该异常说明cookie中的value或属性有控制字符,但是我设置的value并没有特殊字符.初步怀疑是中文编码问题,于是在将字符串进行base64编码之前先用Cookie cookie = new Cookie("name", URLEncoder.encode(str, "UTF-8"));将原字符

HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: Control character in cookie value or attribute.

1 HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: Control character in cookie value or attribute. 2 type Exception report 3 4 message Request processing failed; nested exception is java.lang.Illega

java.lang.IllegalArgumentException: Illegal character in query at index 261

在BaseFragment中使用了LoadingPage,而LoadingPage的联网加载使用的是AsyncHttpClient.一直报java.lang.IllegalArgumentException: Illegal character in query at index 261解析不成功,改成OkHttp解析即可. 网上有些方法,说先URLEncode再拼接,如果解决不了,换个联网请求方式,试一下.

HTTP错误:java.lang.IllegalArgumentException: Illegal character in scheme at index 0: ?http://xxxxxx

读取T卡文件里的域名,HTTP请求出现如下错误 java.lang.IllegalArgumentException: Illegal character in scheme at index 0: http://xxxxxxxxxxx at java.net.URI.create(URI.java:727) at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:84) ...... 出现该错误时,读取域名的代码如下 p

【Cookie】java.lang.IllegalArgumentException An invalid character [32] was present in the Cookie value

创建时间:6.30 java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value 报错原因: Tomcat 8.5版本,在cookie值中不能使用空格. 代码: 1 protected void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

微信小程序前后台使用get方式传参时报错如图.但在微信开发平台和苹果测试都没事,在安卓手机上就报这个错,猜想原因是get传递了汉字的原因. 尝试了下在后台输出从前台获取的参数,但是后台什么也没有获取到,直接报错. 最后用id替换了url里的中文:因为搜索功能不能替换中文的,改成了post请求. 参考:[Java EE]get和post请求的编码过程get请求中文参数乱码的解决之道 网上也有很多报这个错的原因是含有特殊字符:有些版本的Tomcat严格按照 RFC 3986规范进行访问解析,而 RF

java.lang.IllegalArgumentException: Invalid character found in the request target.

http参数存在特殊字符: 特殊字符是出现在后面跟的参数中,对参数进行 URL 编码,可以使用 JavaScript 中的 encodeURIComponent() 函数. 原文地址:https://www.cnblogs.com/YuyuanNo1/p/9717274.html

java.lang.IllegalArgumentException: SessionContext must be an HTTP compatible implementation.:模块化本地测试shiro的一些总结

项目由于是多模块的,所以,测试的时候我想现将shiro框架进行本地测试,然后再放入框架里面,但是这个困扰我了两天了都,其实我应该想到的,只是想多试试,最后还不如多想想 先说一下系统的基本情况,项目是多模块协同开发的,我负责的用户管理模块和权限认证模块,权限认证使用的是shiro框架,然后我就在网上学习了这个框架以及这个框架和ssm的整合,问题就出现在这里:学习的是和ssm框架进行整合,而这个整合用到了web的内容,而我只是本地化单元测试,所以我在写test cases的时候就出现了很多异常,让我

cookie设置日期时间有空格报错:java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value

rt,代码及报错如下: java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value 现暂时将"yyyy-MM-dd hh:mm:ss"中的空格用#替代,就能正常显示时间日期了...