fegin报400

Blade 未结 1 21

一、该问题的重现步骤是什么?

  1. 一次新增了几个接口,不是所有的都报400。

    接口1,get请求,一个参数@RequestParam(参数1),这个400

    接口2,post请求,两个参数@RequestParam(参数1)、@RequestParam(参数2)这个也400

    接口3,post请求,6个参数@RequestParam(参数1)、@RequestParam(参数2)、@RequestParam(参数3)、@RequestParam(参数4)、@RequestParam(参数5)、@RequestParam(参数6)这个行

2. 问AI说是

接口1报400是:你遇到了 Spring Cloud Feign 官方 BUG

Feign 调用 GET 请求时,会把参数放到请求体(BODY)里

Spring Boot 禁止 GET 请求带 BODY → 直接 400!


接口2报400,接口3正常是:

Tomcat 有一个自动兼容机制:

POST 请求 + URL 带参数 → 参数多 → 自动兼容接收



历史接口也有类似于接口1、接口2的写法,不报400


3.


二、你期待的结果是什么?实际看到的又是什么?

希望不报400了


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

3.2.0商业版


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 找一个bladex的feign例子,调用下看看是否正常,然后把他们的逻辑复制拷贝到你的新模块作为新的feign,再调用是否正常。

    如果不行,则深度对比两个接口相关的内容,把你的代码完整贴出来发这里。

    0 讨论(0)
提交回复