Feign调用接口时,都是需要进行参数传递的,一般可以分为两类
@RequestParam注解用来接收字符串类型参数,有以下注意点
服务端
@ResponseBody @PostMapping(value = "check") public CheckAckVo check(String jsonParam) { FileCheckVo fileCheckVo = JacksonUtil.jsonToBean(jsonParam, FileCheckVo.class); return checkAck(taskId, OpStatusEnum.SUCCESS.getCode()); }
客户端
@FeignClient(value = "act-engine-web", fallbackFactory = PlatformUserFeignServiceFallBack.class) public interface PlatformUserFeignService { @RequestMapping(value = "/engine/check", method = RequestMethod.POST) String check(@RequestParam(value = "jsonParam") String jsonParam); }
@RequestBody注解用来接收字符串类型参数,有以下注意点
服务端
@ResponseBody @PostMapping(value = "check") public CheckAckVo check(@RequestBody FileCheckVo fileCheckVo) { //使用对象参数传递,则不需要再使用jackson进行转化 //FileCheckVo fileCheckVo = JacksonUtil.jsonToBean(jsonParam, FileCheckVo.class); return checkAck(taskId, OpStatusEnum.SUCCESS.getCode()); }
客户端
@FeignClient(value = "act-engine-web", fallbackFactory = PlatformUserFeignServiceFallBack.class) public interface PlatformUserFeignService { @RequestMapping(value = "/engine/check", method = RequestMethod.POST) String check(@RequestBody FileCheckVo fileCheckVo); }
Feign之间调用的参数传递问题(@RequestBody 和@RequestParam)
原文:https://www.cnblogs.com/weixupeng/p/13673970.html