项目中get请求:http://domain:port/api/module/function/getList?pageNum=1&pageSize=1000&keyWord=[]&id=;
keyWord的参数应该是 keyWord="[]",如果不加双引号,keyWord就变成了数组,后台接口就报错了。
调查原因:springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范, "[]" 是规范的保留字。
处理方法:
/** * Project : * Version : 1.01 * Date : 2023/7/26 星期三 14:11 * * @Author: chenxy * Modification history : * 解决 springboot 2.6.6 版本中内嵌 tomcat 9.0.60 版本 严格执行RFC 3986规范,导致在 GET 请求中出现保留字符请求错误的问题。 **/ @Configuration public class TomcatConfig { @Bean public TomcatServletWebServerFactory webServerFactory() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addConnectorCustomizers((Connector connector) -> { connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); }); return factory; } }
标签:请求,keyWord,60,版本,2.6,springboot From: https://www.cnblogs.com/ron-01/p/17759395.html