@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注解添加

@FeignClient(
 url = "${orderServer_domain:http://order:8082}",
 value = "order-server",
 contextId = "OrderServerClient",
 path = "/api/order"
 )
public interface OrderRemoteClient {
 @RequestMapping(value="/detail", method = RequestMethod.POST)
 List<String> detail(@RequestHeader Map<String, String> headerMap, @RequestParam("orderId") String orderId);
}

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

@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"})
 List<String> detail(@RequestHeader Map<String, String> headerMap, @RequestParam("orderId") String orderId);
}

二、全局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 @   甜菜波波  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-02-07 HandlerMethodArgumentResolver 参数解析器
点击右上角即可分享
微信分享提示