Feign请求头设置实战教程

时间:2024-03-28 22:54:52

一、 yml配置文件

Feign请求头设置实战教程

 二、启动类配置注解

@EnableDiscoveryClient

// 填写服务提供方的client的包名

@EnableFeignClients(basePackages = {"xxx.xxx.xx"})

三、Feign声明式调用接口

@Component
@FeignClient(value = "调用服务名", configuration = FeignInterceptor.class)
public interface IDemoFeign {

    @RequestMapping(path = "接口相对地址", method = RequestMethod.GET, produces = "application/json")
    返回内容 接口方法();
}

四、自定义请求拦截器,在请求前设置header等内容

public class FeignInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        Enumeration<String> headerNames = request.getHeaderNames();
        while (headerNames.hasMoreElements()){
            String headerName = headerNames.nextElement();
            String headerValue = request.getHeader(headerName);
            requestTemplate.header(headerName,headerValue);
        }
    }
}