错误:400报错,Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

 

原因:tomcat无法识别到接口中的特殊字符,我的错误是接口中含有[]字符

 

解决办法:

  1、在conf/catalina.properties 末尾,添加  

tomcat.util.http.parser.HttpParser.requestTargetAllow=|[]

    我试了下,没用。

  2、在conf/catalina.properties 末尾,添加  

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

    我试了下,虽然不报错,但是还是没法跑通,猜想应该是屏蔽了这个错误,但是还是有问题。

  3、在conf/server.xml 中,在Connector配置项添加 

 relaxedQueryChars="[]|{}^\`"<>"

  即下面这句话

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
 relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;" 
 redirectPort="8443" />

  我试了下,完美解决问题!

    

 

参考:https://blog.csdn.net/shenxiaomo1688/article/details/105806305

 

posted on 2021-01-13 10:01  浅情划过那时雨  阅读(251)  评论(0)    收藏  举报