@FeignClient 添加请求头header的4种方法

一、单个Feign请求添加header

方法1.在@RequestMapping中添加

@FeignClient(
        url = "${orderServer_domain:http://order:8082}",
        value = "order-server",
        contextId = "OrderServerClient",
        path = "/api/order"
        )
public interface OrderRemoteClient {
    @RequestMapping(value="/detail", method = RequestMethod.POST,
        headers = {"Content-Type=application/json;charset=UTF-8"})
    Order detail(@RequestParam("orderId") String orderId);
}

方法2. 使用@RequestHeader注解添加

方法3. 使用@Headers注解添加

二、全局Feign请求添加header

实现RequestInterceptor接口

@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {

 @Override
 public void apply(RequestTemplate requestTemplate) {
    ServletRequestAttributes attributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
    if (attributes != null) {
        HttpServletRequest request = attributes.getRequest();
        requestTemplate.header(HttpHeaders.AUTHORIZATION,  request.getHeader(HttpHeaders.AUTHORIZATION));
        requestTemplate.header("proxyHost", request.getHeader("proxyHost"));
     }
 }
}


posted @ 2025-02-07 15:53  甜菜波波  阅读(1811)  评论(0)    收藏  举报