SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer);
第一种方法:
如果你的API为Restful 方式的可以在Client接口参数中加注解@PathVariable
@FeignClient(name = "PRODUCT") @Component public interface ProductClient { @PostMapping("/product/getMsgByGet/{a}") String getMsg(@PathVariable("a") String a); }
第二种方法:
不是Restful形式的API 在Client接口参数加注解@ReuqstParam
@FeignClient(name = "PRODUCT") @Component public interface ProductClient { @PostMapping("/product/getMsgByGet") String getMsg(@RequestParam String a); }
不加这两个注解的话目标服务可能会无法识别参数,造成错误。