Spring Cloud Feign:Feign 在发出 POST 请求时不将参数放入 HTTP 正文

Spring Cloud Feign: Feign doesn't put parameter into HTTP body when issuing POST request

这是我的 Feign 接口定义:

@RequestMapping(value = "/group/list", method = RequestMethod.POST)
    List<AdvertGroupVO> list(AdvertGroupVO vo,
                             @RequestParam("page") int page,
                             @RequestParam("size") int size);

虽然这是一个POST请求,但是feign还是把pagesize放到了URL里面,而不是请求body:

2016-09-03 17:59:39 [DEBUG] o.a.coyote.http11.InternalNioInputBuffer - Received [POST /group/list?page=1&size=8&groupId=6 HTTP/1.1
Accept: */*
User-Agent: Java/1.8.0_45
Host: 10.236.65.24:8080
Connection: keep-alive

]

我想不通为什么

无论 HTTP 方法如何,用 @RequestParam 注释的参数都将添加到 URL 查询字符串中。只有没有注解的参数才会添加到请求体中,您必须自定义自己的Feign Encoder。