報錯如下:
在請求目標中發現無效字符。有效字符在RFC 7230和RFC 3986中定義。
原因是Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了對於http頭的驗證。
就是添加了些規則去限制HTTP頭的規范性
解決方法如下:
@Bean public ConfigurableServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\")); return factory; }
還可以修改tomcat配置文件
在Tomcat的安裝目錄中,打開conf/server.xml文件,找到<Connector>節點
只需在剛剛的<Connector>標簽中,加入relaxedPathChars="|{}[],%" 和 relaxedQueryChars="|{}[],%"即可,其中|后面的字符可以自己隨意增減。