The valid characters are defined in RFC 7230 and RFC 3986 解决方案

解决方案:

  1. 在catalina.properties添加

     tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
     org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
  2. 在server.xml中添加

     <Connector port="8080" protocol="HTTP/1.1"
                    connectionTimeout="20000"
                    redirectPort="8443"
        URIEncoding="UTF-8"
        relaxedPathChars='\":|{}[]'
        relaxedQueryChars='\":|{}[]' />

问题原因:

url中不能存在[]这个字符

 

这个问题纠结了一下午的时间,度娘搜的内容真是千篇一律,当我在stackoverflow中寻找答案时,看到一个评论

真是一语惊醒梦中人

 

翻译过来就是url中不能存在[ ]这个字符,在配合上面的修改,让Tomcat可以识别出[ ]这个就可以解决了!

补充一句我的Tomcat版本是8.5.47!

 

参考资料:https://blog.csdn.net/lebron3v/article/details/92593478 

     https://stackoverflow.com/questions/54287922/the-valid-characters-are-defined-in-rfc-7230-and-rfc-3986

 

posted @ 2020-07-04 15:39  梵业伽蓝  阅读(390)  评论(0)    收藏  举报