get请求url拼接参数包括特殊字符报错400Bad Request

发布时间 2023-07-25 10:19:34作者: 花田007

解决办法:

对请求参数进行编码,可以使用encodeURI()函数(亲测)

或者使用以下办法:

        1.将get请求替换为post请求(替换成本过高);

        2.使用低版本的tomcat

        3.使用高版本的tomcat,修改tomcat配置;(修改tomcat目录底下的/conf/catalina.properties配置文件)

原因:

Tomcat的新版本中增加了一个新特新,就是严格按照RFC 3986规范进行访问解析,
RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4种特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。

而我们的系统在通过地址传参时,在url中传了一段参数包含有有不在RFC3986中的保留字段中,所以会报这个错。