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还是把page
和size
放到了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。
这是我的 Feign 接口定义:
@RequestMapping(value = "/group/list", method = RequestMethod.POST)
List<AdvertGroupVO> list(AdvertGroupVO vo,
@RequestParam("page") int page,
@RequestParam("size") int size);
虽然这是一个POST
请求,但是feign还是把page
和size
放到了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。