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