分析原因:
導致上述問題是因為tomcat自tomcat 8.0.35版本之后對URL參數做了比較規范的限制,必須遵循RFC 7230 and RFC 3986規范,對於非保留字字符(json格式的請求參數)必須做轉義操作,否則會拋出Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986錯誤信息。
解決辦法有很多方式,具體如下幾種:
1. 遵循7230 and RFC 3986規范,對於非保留字字符做轉義操作
2. 使用保留字字符
3. 降低tomcat版本
4. 將json數據進行urlencode編碼
個人建議從目前的角度出發使用第三種方式降低tomcat版本就可以了,如果從長遠出發的話,建議遵循RFC 7230 and RFC 3986規范,對於非保留字字符(json格式的請求參數)做轉義操作。