zoukankan      html  css  js  c++  java
  • Tomcat8升级后URL中特殊字符报错出现原因

    请求带上花括号等字符,请求无法送达服务端,报错:

    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;
        }
    }

    即可支持花括号请求。。

  • 相关阅读:
    linux-文件
    字符串函数
    函数
    内存管理
    静态库、动态库文件制作
    Makefile 待完善
    指针
    开发板GEC6816环境搭建,使用VS code
    C语言数组
    连接开发板下载程序
  • 原文地址:https://www.cnblogs.com/wwmiert/p/11514659.html
Copyright © 2011-2022 走看看