Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 问题的处理
在电脑上装了tomcat9.0.10安装版,然后在谷歌浏览器上测试数据上传,结果却报了个400错误,之前没遇到过,特记录下,避免下次遇到再茫然无措。如下图:
上网查了之后 ,参考了这篇博客https://blog.csdn.net/zeroso/article/details/70592179/的做法,我采用的是
在conf/catalina.properties中最后添加一行:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
然后重启tomcat,却发现无济于事。后来我想既然在浏览器上直接请求不行,就换作另一种请求方式,那就是换做Post的方式进行请求,写一个HTML文件,将请求的方式指定为POST,如下图:
然后将json数据写在文本域里发起讲求就正常的 不报400的错误了,当然这是个取巧的办法,个人认为是tomcat版本高,不接受原先的讲求的方式,所以可改用低版本的应该就不会再报此类错误了,我之前用的是tomcat 8.0.14就不会发生这种错误,所以,有时软件这事并不会版本越高越好,稳定版才是较好选择。