记一次坑爹的HTTP 400 Bad Request报错

前言

某天,正当某无名程序员小哥在UAT发布新版本兴致勃勃地准备线上测试的时候,发现程序居然出错了,小哥马上通过线上检查log发现当call某个第三方系统API的时候抛出400 Bad Request错误。此时第一反应是会不会是我的配置或者请求拼错了?于是小哥一顿操作各种检查,检查配置,网络,加了一些log打印相关信息,并且跟SIT环境做了比对(SIT环境是正常的),最后发现都没问题。此时小哥断定,问题应该是出在第三方API了,于是小哥马上去找了第三方系统的开发负责人,很不幸的是人家请假了,而且人家只有一个后端开发,于是问题只能拖到第二天去解决了。于是因为这个问题小哥晚上失眠了,怕因为自己的问题影响了第二天的UAT测试。

找到问题

第二天一早,小哥终于等来了第三方系统开发负责人上线,马上一阵亲切问候后开始一起排查问题,此处又是一堆麻烦的log和trigger,主要是第三方系统打印的log太多所以花了一些时间,最后发现报错是request header too long. 终于找到问题了。马上查了一下,发现spring配置了默认max-http-header-size为8kb,应该是我UAT封装的header size超过8kb了,UAT的header默认加了很多配置进去,SIT没有加那么多配置所以没报错。http header超过8kb会报错:400 Bad Request。

spring官方文档配置的默认max-http-header-size为8kb

在这里插入图片描述

postman查看request size

在这里插入图片描述

解决

找到问题就好办了,于是我叫第三方系统开发在yml配置文件把max-http-header-size设置成16kb,重新发布postman试了一下接口,通了,到此问题解决。

server:
  max-http-header-size: 16
  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值