访问spring boot controller时,报错:The valid characters are defined in RFC 7230 and RFC 3986 1、特殊符号 @SpringBootApplicationpublicclassApplication {publicstaticvoidmain(String[] args) { SpringApplication.run(Application.class, args);//允许特殊符号,本例是 | { } 做入参,也可追加其他符号System.se...
The valid characters are defined in RFC 7230 and RFC 3986 springboot 中,使用tomcat做服务器,遇到 The valid characters are defined in RFC 7230 and RFC 3986 。 原因,tomcat 高版本使用了更标准的rfc规范,在url上不允许使用部分特殊字符。 源码参看 org.apache.tomcat.util.http.parser.HttpParser 129行 ...
导致上述问题是因为tomcat自tomcat 8.0.35版本之后对URL参数做了比较规范的限制,必须遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)必须做转义操作,否则会抛出Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986错误信息。 解决办法有...
1. RFC 7230和RFC 3986标准中关于字符的定义 RFC 7230:这个标准主要关注HTTP/1.1消息语法和路由。虽然它本身不直接定义URI的字符集,但它指定了HTTP消息头(包括URI)的编码规则,通常引用RFC 3986来处理URI的语法和字符编码。 RFC 3986:这个标准定义了URI的通用语法,包括URI的组成部分(如协议、主机名、路径、查询参数...
简介:建议从目前的角度出发使用第三种方式降低tomcat版本就可以了,如果从长远出发的话,建议遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请求参数)做转义操作。 关于The valid characters are defined in RFC 7230 and RFC 3986问题 一、背景 ...
简介:IE上的 The valid characters are defined in RFC 7230 and RFC 3986 坑的解决方法 前言 日常开发中经常遇到一些莫名其妙的小问题,例如即将上线的项目在线上异常报错,但是在本地确可以正常运行。往往这猝不及防的小惊喜,真是让我们猿猿欲哭无泪啊。这里简单总结一下在IE浏览器上遇到的一个小坑,之前就因为...
上面的图片中,我们明确看到这样一行Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986,这句话的大致意思就是说请求头中包含了 RFC 7230 and RFC 3986规范中定义的非法字符。在这种情况下就会导致页面报400异常。
1.~/conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow选项,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},选项是按照字符分隔为一个数组,表示放行["|","{","}"]2.或者你可以在~/conf/catalina.properties最后一行添加org....
1.RFC 3986文档规定,Url中只允许包含英文字母(a-z,A-Z)、数字(0-9)、- _ . ~ 4个特殊字符以及所有保留字符。 2.RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ] 不安全字符 还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为...
Thevalid characters aredefinedinRFC7230andRFC3986 b712a9bea9d2b498d990dfc8d9304aa.png 原因:请求接口的url中携带了特殊字符[]{}等 解决方法: tomcat的server.xml中添加如下配置 <Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"URIEncoding="utf-8"relaxedPathChars="|{...