spring boot 中解决 Invalid character found in the request target 异常

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
**
原因:
SpringBoot 2.0.0 以上都采用内置tomcat8.0以上版本,而tomcat8.0以上版本遵从RFC规范添加了对Url的特殊字符的限制,url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~四个特殊字符以及保留字符( ! * ’ ( ) ; : @ & = + $ , / ? # [ ] ) (262+10+4+18=84)这84个字符,请求中出现了{}大括号或者[],所以tomcat报错。设置RelaxedQueryChars允许此字符(建议),设置requestTargetAllows选项(Tomcat 8.5中不推荐)。 根据Tomcat文档,下面提供一种方法来设置松弛的QueryChars属性***

在启动类中添加

    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
            @Override
            public void customize(Connector connector) {
                connector.setProperty("relaxedQueryChars", "|{}[]");
            }
        });
        return factory;
    }

Invalid character found in method name是一个错误消息,表示在方法名发现了无效字符。HTTP方法名必须是标记。 这个错误通常是由于HTTP请求的方法名包含了非法字符导致的。非法字符是指不符合RFC 7230和RFC 3986规定的有效字符。 要解决这个问题,你可以检查你的代码的HTTP请求方法名,确保它们只包含RFC规定的有效字符。如果你使用的是Spring Boot框架,你可以确保你的方法名符合RESTful API的命名规范,只包含字母和数字,并且以合适的HTTP方法(GET、POST、PUT、DELETE等)命名。如果你使用的是其他框架或工具,请参考相应的文档来确认有效字符的规范。 另外,你还可以检查你的HTTP请求是否存在特殊字符或非法字符,并对其进行处理或转义。例如,使用URL编码来转义特殊字符。 总结来说,要解决Invalid character found in method name的问题,你需要确保你的HTTP方法名只包含有效字符,并且避免使用特殊字符或非法字符。如果问题仍然存在,请进一步检查你的代码和请求,以确定是否有其他导致该错误的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [报错:Invalid character found in method name. HTTP method names must be tokens](https://blog.csdn.net/weixin_43558566/article/details/102745488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [tomcat异常解决(Invalid character found in the request target. The valid characters are defined in ...](https://download.csdn.net/download/weixin_38665411/14048115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值