线上http400,postman正常

Posted root_zhb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线上http400,postman正常相关的知识,希望对你有一定的参考价值。

1、问题描述

近期对接国脉,升级sdk包之后,出现问题:环境上部分链接显示http400,但是使用postman进行测试一切正常。

2、问题排查

  1. 首先查看问题链接的共同点,发现有问题的链接都配置了单点登录,也即Cookie中都包含了TGC
  2. 排查单点的配置不存在问题,考虑把cookie放到header中进行测试
  3. 错误复现http400,生产环境日志如下
java.lang.IllegalArgumentException: Request header is too large
	at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:718)
	at org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:865)
	at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:563)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:311)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:813)
  1. 基本可以确定问题了,sdk对请求头的大小做了限制

3、解决

springboot的yml文件中添加配置

server:
  port: 7030
  maxHttpHeaderSize: 102400

以上是关于线上http400,postman正常的主要内容,如果未能解决你的问题,请参考以下文章

Postman HTTP 状态 400 - 为啥?

用curl调用post接口json参数中带中文出现400错误,在postman中测试正常!

Postman 400 Web API 的错误请求

jmeter中http请求出现400/415解决方案

axios.post 返回 400 React Native 的错误请求

Postman 400 错误请求