关于feign调用的参数传递问题(@RequestBody和@RequestParam)
feign调用的参数传递问题
SpringCloud Feign报错:
java.lang.IllegalStateException: Method has too many Body parameters
上边的报错提示为body太多了,feign调用的方法里只能有一个body但是requestparam可以多个
错误写法

正确写法

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

服务端:

不加@RequestBody的话userDTO就拿不到值
feign传参总结
返回实体对象 服务提供者
Controller上有@RestController注解,没截上

实体对象实现序列化接口

服务调用者



restful传参 服务提供者
传两个参数

消费者



传实体对象 服务提供者
要想接收实体对象,必须加@RequestBody注解,注意这个注解最多只能有一个,不能传多个并且这个参数得放到最后面

消费者



以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring源码解析之BeanPostProcessor知识总结
今天给大家带来的文章是Spring的相关知识,文章围绕着BeanPostProcessor的使用展开,文中有非常详细的介绍,需要的朋友可以参考下2021-06-06
详解mybatis-plus使用@EnumValue注解的方式对枚举类型的处理
这篇文章主要介绍了详解mybatis-plus使用@EnumValue注解的方式对枚举类型的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
如何在Spring WebFlux的任何地方获取Request对象
这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下2021-01-01


最新评论