feign请求传送实体类参数的一些摸索

    @PostMapping("dc")
    public String dc(HttpServletRequest request, @RequestBody User user){
        List<String> services = discoveryClient.getServices();
        services.forEach(item->{
            logger.info("Service:"+item+":");
        });
        String name = user.getName();

        return "service"+services+name;

    }

以上是服务提供方的代码,使用@RequestBody接受请求体中的参数

    @GetMapping("/consumer")
    public String dc(){
        User user = new User();
        user.setName("mck1");
        user.setAge(1);

        return eurekaClient.dc(user);
    }


@FeignClient("eureka-client")
public interface EurekaClient {

    @PostMapping("/dc")
    public String dc(@Param("user") User user);
}

以上是服务调用方的代码,使用了@Param注解来发送参数(经过我测试发现,这个注解中的名字随便写不影响接收,说明@RequestBody是接收请求体中的所有)

以上是post请求的形式

get请求的形式不能用这种方式,get请求应该用@RequestParam注解来传送普通参数

原文地址:https://www.cnblogs.com/changeCode/p/11147420.html