springCloud使用 feign 远程调用失败,提示 Required request body is missing

重现

项目中遇到使用 feign 抛出远程调用失败的错误
先来看代码:

  • 远程接口
/**
*查询待签,代办 事物
* @param bladeFlow
* @param query
* @return
*/
@GetMapping(GET_PROCESS_LIST)
R<IPage<BladeFlow>> processList(@RequestBody BladeFlow bladeFlow, @RequestBody Query query);
  • 调用接口
/**
* 待签、待办合并列表页
*/
@PostMapping("process-list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "待签、待办合并列表页", notes = "传入流程信息")
public R<IPage<BladeFlow>> processList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
    R<IPage<BladeFlow>> processList = iFlowClient.processList(bladeFlow, query);
    return R.data(processList);
}

报错信息如下:

2020-12-08 10:56:38.419 ERROR 81461 --- [ XNIO-1 task-13] o.s.c.log.error.RestExceptionTranslator  : 消息不能读取:Required request body is missing: public org.springblade.core.tool.api.R<com.baomidou.mybatisplus.core.metadata.IPage<org.springblade.flow.core.entity.BladeFlow>> org.springblade.flow.business.feign.FlowClient.processList(org.springblade.flow.core.entity.BladeFlow,org.springblade.core.mp.support.Query)

提示的很明显,消息不能读取:Required request body is missing

原因

由于 GET 方法请求试没有传输 body 因此无法获取 body 信息,所以这边需要将远程接口改成PostMapping就可以了

这个时候会遇到 Method has too many Body parameters 原因是接口中只能有一个 @RequestBody

posted @ 2020-12-08 11:34  会飞的小黑鱼  阅读(7283)  评论(0编辑  收藏  举报