feign远程调用请求头设置参数


代码如下
通过实现RequestInterceptor 接口,重写apply方法逻辑,设置相应的参数,此时在业务方法中远程调用对应接口时,都会携带这些参数,可在远程调用接口所在服务中进行解析使用。

import feign.RequestInterceptor;
import feign.RequestTemplate;
import javax.servlet.http.HttpServletRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

@Configuration
public class FeignClientRequestInterceptor implements RequestInterceptor {
    public FeignClientRequestInterceptor() {
    }

    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        if (null != attributes) {
            HttpServletRequest request = attributes.getRequest();
            requestTemplate.header("Authorization", new String[]{request.getHeader("Authorization")});
            requestTemplate.header("resourceId", new String[]{request.getHeader("resourceId")});
        }

    }
}

文章作者: zhou22
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhou22 !
  目录