http请求报错400的说明这个请求无效,请求没有进入后台服务器里
原因: 前端提交的字段名称或者字段类型和后台的实体类不一样 或者前端提交的参数跟后台需要的参数个数不一致,导致无法封装
解决方法: 对照字段名称,类型保证一致
此外:Header 信息过长过多也会引发400问题
问题描述:
access_log日志报错400
ip - - [31/Mar/2021:15:15:41 +0800] "GET /XX/XX/XX HTTP/1.1"s 400 435 1
ip - - [31/Mar/2021:15:16:21 +0800] "GET /XX/XX/XX HTTP/1.1"s 400 435 1
原因:Header 信息过长过多也会引发400问题
日志报错如下:
2021-03-31 15:15:41.469 [http-nio-20001-exec-10] INFO o.a.coyote.http11.Http11Processor - Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:777)
at org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:938)
at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:589)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:284)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
解决办法:yml文件加入如下配置
server:
port: 1000
max-http-header-size: 102400
Feign调用报错400:HTTP请求无效问题解析
当遇到HTTP请求错误400时,通常是由于前端提交的字段名称、类型与后台实体类不匹配,或者参数数量不符导致。此外,Header信息过长也可能引发此问题。解决方案包括检查并确保字段一致性和限制Header大小。在access_log日志中,可以看到具体的400错误,通过调整配置文件可以解决Header过长的问题。

1240

被折叠的 条评论
为什么被折叠?



