问题描述:
1、有服务A 通过 FeignClient 注解 来调用 服务B,如下图所示,就一个参数,结果,服务B报丢失参数。
FeignClient
@PostMapping("/nonuser/target/agent/transactions/num")
Result<TargetDealSvRes> getTransactionsNum(String agentId);
服务B
@PostMapping("/transactions/num")
public Result<TargetDealSvRes> getTransactionsNum(@RequestParam String agentId)
2、解决方法
(1)、把Post请求改为Get请求,@FeignClinet和被调用者的参数都要加@RequestParam
(2)、请求参数不用单参数,把单参数封装成对象来传递。
本次采用方式(1),改后的效果如下图所示:
@GetMapping("/nonuser/target/agent/transactions/num")
Result<TargetDealSvRes> getTransactionsNum(@RequestParam String agentId);
@GetMapping("/transactions/num")
public Result<TargetDealSvRes> getTransactionsNum(@RequestParam String agentId)
文章描述了一个使用FeignClient进行服务间调用时遇到的参数丢失问题。服务A通过FeignClient的POST方法调用服务B,但服务B报告参数丢失。解决方案是将POST请求改为GET请求,并在两个接口中都添加@RequestParam注解来明确参数。这种方法成功解决了问题。
8948

被折叠的 条评论
为什么被折叠?



