請求帶上花括號等字符,請求無法送達服務端,報錯:
Failed to load resource: the server responded with a status of 400 ()
https://blog.csdn.net/Carino_U/article/details/78973120
用springboot開發接口時,SpringBoot URL帶有特殊字符([]/{}等),報400錯誤
這個問題是由於Tomcat的新版本中增加了一個新特性,就是嚴格按照 RFC 3986規范進行訪問解析,而 RFC 3986規范定義了Url中只允許包含英文字母(a-zA-Z)、數字(0-9)、-_.~4個特殊字符以及所有保留字符(RFC3986中指定了以下字符為保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。
解決方案:
① 可以客戶端請求時URL encode處理特殊字段
② 改用 post 請求 『由於我這是一個新服務在開發中,所以選用了這種方案』
③ 改 Tomcat 配置文件
http://tomcat.apache.org/tomcat-8.0-doc/config/systemprops.html#Other
官方描述如下
springboot添加如下:
@Configuration public class PathConfig { @Bean public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory(); fa.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]{}")); return fa; } }
即可支持花括號請求。。