打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBoot报错 Error parsing HTTP request header

使用SpringToolSuite4执行Stringboot插入操作时,报请求头错误,具体信息如下

  1. Error parsing HTTP request header
  2. Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level
  3. java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
  4. org.apache.coyote.http11.AbstractHttp11Processor process
  5. 信息: Error parsing HTTP request header
  6. Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
  7. java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
  8. at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:283)
  9. at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
  10. at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
  11. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1524)
  12. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1480)
  13. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  14. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  15. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  16. at java.lang.Thread.run(Thread.java:745)

大致意思是,我的请求信息里包含了非法字符,我的参数如下:显而易见,包含了“#{}”非法字符

原因找到了,那我们就来解决它

上网查了一些资料,解决方法有很多,比较容易理解的2种方案

1、降低Tomcat版本:不推荐

2、增加Tomcat配置类:可以插入\"#<>[\\]^`{|}中的任意特殊字符,当然也可以自定义

  1. package com.xkcoding.rbac.security.config;
  2. import org.apache.catalina.connector.Connector;
  3. import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. @Configuration
  7. public class TomcatConfig {
  8. @Bean
  9. public TomcatServletWebServerFactory webServerFactory() {
  10. TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
  11. factory.addConnectorCustomizers((Connector connector) -> {
  12. connector.setProperty("relaxedPathChars", "\"#<>[\\]^`{|}");
  13. connector.setProperty("relaxedQueryChars", "\"#<>[\\]^`{|}");
  14. });
  15. return factory;
  16. }
  17. }

此时,问题已解决,且测试成功

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
配置Tomcat打印http request内容的详细信息
TOMCAT源码分析(消息处理)
为Tomcat写了一个增强的可以限制浏览器和防盗链过滤器提交到Tomcat的bug里被拒了:(
还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!
nginx 、apache、tomcat自定义返回错误页面配置
Tomcat 7 启动时出现 java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服