SpringCloud使用Feign调用出现请求头丢失的问题

解决方案:在调用方配置Feign的拦截器

 

@Configuration
public class FeignInterceptor {

    @Bean
    public RequestInterceptor requestInterceptor() {
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate template) {
                // 获取Request对象
                ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
                HttpServletRequest request = requestAttributes.getRequest();

                // 获取请求头
                Enumeration<String> headerNames = request.getHeaderNames();
                while (headerNames.hasMoreElements()) {
                    String key = headerNames.nextElement();
                    String value = request.getHeader(key);

                    // 在Feign调用的时候手动的把请求头的信息添加到Feign的请求对象中
                    template.header(key, value);
                }
            }
        };
    }
}


版权声明:本文为qq_59614192原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。