问题描述:

微服务调用Feign接口的get请求时,出现报错:

java.lang.IllegalArgumentException: method GET must not have a request body

原因分析:

上述报错的大概意思是:java.lang.IllegalArgumentException:方法GET不能有请求体

主要原因为Spring Cloud项目使用FeignClient的时候GET请求方式无法解析对象参数

解决方案:

而Spring Cloud在2.1.x版本中提供了@SpringQueryMap注解,即在2.1.0以后的版本可以通过@SpringQueryMap注解在get请求中传输对象

远程调用Feign接口中POST、GET请求的使用

  • POST请求 + @RequestBody

代码示例(如下):

@PostMapping("/getUsers")
List<UserInfo> selectList(@RequestBody QueryEntity queryEntity);
  • GET请求 + @SpringQueryMap

代码示例(如下):

@GetMapping("/getUsers")
List<UserInfo> selectList(@SpringQueryMap QueryEntity queryEntity);
  • GET请求 + @RequestParam

代码示例(如下):

@GetMapping("/getById")
UserInfo getInfo(@RequestParam("userId") Long userId);

创作不易,关注💖、点赞👍、收藏🎉就是对作者最大的鼓励👏,欢迎在下方评论留言🧐

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐