今天部署环境,tomcat突然报这个错误,接口返回400。
网上查了下,大概原因是:
在tomcat 8.0.35之后 ,tomcat对url的参数做了比较规范的限制,必须按照RFC 7230 and RFC 3986规范,对于非保留字字符,如果不做转义处理,一律都会报The valid characters are defined in RFC 7230 and RFC 3986 错误。
解决这个问题的办法有几个:
- 把非保留字字符做转义
- 就是使用保留字字符
- 要么就是换比较底一点的tomcat版本
- 将json数据进行urlencode编码就可以了 即把json中的{}编码
本人觉得解决问题最简单粗暴的方式就是使用第三种方法,当然,最好还是要按照规范来写,长远考虑的话.
本文探讨了Tomcat 8.0.35及以后版本中出现的400错误问题,该问题源于对URL参数的严格限制。文章提供了几种解决方案,包括对非保留字进行转义、使用保留字或者回退到较低版本的Tomcat。
1万+

被折叠的 条评论
为什么被折叠?



