在 Springboot 1.5.4.RELEASE 中使用 Feign @HeaderMap 不会发送标头

D R*_*D R 2 spring-boot spring-cloud-feign

我正在尝试使用 feign.HeaderMap 注释在其余请求中传递 HTTP 标头映射,但这些标头出现在正文中。

代码如下:

@FeignClient(name = "accounts", url = "localhost:8080") 公共接口 AccountClient {

@RequestMapping(method = RequestMethod.GET, value = "/rest/accounts/get", produces = MediaType.APPLICATION_JSON_VALUE)
Account findOne(@RequestParam("id") String id, @HeaderMap Map headers);
Run Code Online (Sandbox Code Playgroud)

}

Kev*_*vis 6

您正在混合注释。使用时,spring-cloud-netflix您需要改用 Spring 注释@RequestHeader

@RequestMapping(method = RequestMethod.GET, 
        value = "/rest/accounts/get", 
        produces = MediaType.APPLICATION_JSON_VALUE)
Account findOne(@RequestParam("id") String id, @RequestHeader Map headers);
Run Code Online (Sandbox Code Playgroud)

Feign默认情况下,没有被标注的所有参数就会在体内被序列化。