SpringCloud中使用feign调用参数长度超限

一、问题来源

此前,我接到了一个需求,其中内容便是在一个界面展示另外一个界面录入的申请单,思路很简单,在展示界面添加一个查询,将查询的内容填充到现有的展示VO中。本地测试没有问题,发布测试环境进行测试也没查出问题。以为这个需求就过去了。

结果发布后没几天,听到业务方打电话说这个界面全部都查不出来了,报一个错误。当时就惊吓到了(心想:不会是我的代码出问题了吧)。果不其然,既然问题来了就开始进行排查原因呗。

1、看了日志,没有产生什么问题。给出的堆栈异常信息中全部指向feign调用成功后的判断返回结果是否合法中

2、找到提示,便去看代码。看了许久,代码也没出什么问题,但是就是报错啦

3、既然调用成功了,没有进入熔断里面,那么调用就没什么问题,可是返回结果是错误的。就去看了调用时的参数有多少

果不其然,给我发现问题了,请求参数非常多,而且还是一个GET请求,于是猜想是否是由于参数太长导致拼接到url上面导致url长度超出现在了。

二、解决方案

(一)修改GET为POST

正常情况来说,url会被浏览器限制长度导致模拟发送请求调用失败

(二)修改配置文件(.yml / .properties)

增大服务提供的长度限制

server:
    port: 4450
    # 增加请求头接受大小
    max-http-header-size: 10485760
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值