Feign之间调用的参数传递问题(@RequestBody 和@RequestParam)

本文介绍了在使用SpringCloudFeign进行服务间调用时遇到的一个常见问题:GET请求中包含过多的Body参数导致`java.lang.IllegalStateException: Method has too many Body parameters`异常。错误的实践是在GET请求中使用多个Body参数,而正确的做法是将参数通过@RequestParam注解传递,或者考虑调整请求类型为POST。在服务端和客户端的代码示例中,展示了如何正确处理请求参数,确保@RequestBody注解只用于POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringCloud Feign报错:java.lang.IllegalStateException: Method has too many Body parameters

上边的报错提示为body太多了,feign调用的方法里只能有一个body但是requestparam可以多个

错误写法:
在这里插入图片描述
正确写法:
在这里插入图片描述

异常原因:当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面可以不加该注解修饰。

body的正确形式:
客户端:
在这里插入图片描述
服务端:
在这里插入图片描述
不加@RequestBody的话userDTO就拿不到值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值