原因分析:
Tomcat 7.0 以上版本為了安全,會對一些特殊字符進行編碼氧敢,導(dǎo)致 400 錯誤第献。
解決方法:
- 找到 config/catalina.properties 最后一行衬吆,去掉注釋 # 在最后加一個 {}
# tomcat.util.http.parser.HttpParser.requestTargetAllow=|
改為:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
- 如果 json 字符串中還存在 []秸滴,則還需要在 config/server.xml 中的 Connector 中添加:relaxedQueryChars="[,]"
<Connector URIEncoding="UTF-8"
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
relaxedQueryChars="[,]"
/>
如果還有其他特殊的字符串,可以直接添加到這個屬性里栈源,完美解決挡爵。
原文鏈接:https://blog.csdn.net/a116385895/article/details/105976626