Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
网上说的很清楚,是因为tomcat版本升级对请求头做了规范限制。解决方法:
一、降低Tomcat版本,使用Tomcat 7可能没问题,我没有试,也不会那样做。
需要更换那些版本的tomcat,可以直接下载对应的版本的tomcat
http://archive.apache.org/dist/tomcat/tomcat-6/
http://archive.apache.org/dist/tomcat/tomcat-7/
http://archive.apache.org/dist/tomcat/tomcat-8/
http://archive.apache.org/dist/tomcat/tomcat-9/
二、某些版本的 Tomcat 可以临时放开限制(转载内容):
根据(https://bz.apache.org/bugzilla/show_bug.cgi?id=60594) ,从以下版本开始,有配置项能够关闭/配置这个行为:
8.5.x系列的:8.5.12 onwards
8.0.x系列的:8.0.42 onwards
7.0.x系列的:7.0.76 onwards
解决办法如下:
…/conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},然后去掉这句话的注释。
三、使用其他方式传参(post、localStorage)
四、对url进行编码(urlencode),以下是对照表,方便手写编码: