Feign调用携带Header参数方法

    技术2022-07-13  100

    第一步,在请求拦截器中统一配置

    package com.bxdxstu.com.config; import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.context.annotation.Configuration; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.Enumeration; @Configuration public class FeignConfiguration implements RequestInterceptor { @Override public void apply(RequestTemplate template) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { while (headerNames.hasMoreElements()) { String name = headerNames.nextElement(); String values = request.getHeader(name); template.header("canshu", "aaaa"); } } } }

    第二部,在feignClient中配置自定义的配置类,覆盖默认的配置

    package com.bxdxstu.com.feign; import com.bxdxstu.com.config.FeignConfiguration; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @FeignClient(value = "flow", url = "http://localhost/blade-flow",configuration = FeignConfiguration.class) public interface FlowClient { @RequestMapping(value = "/manager/list", method = RequestMethod.GET) String list(); }
    Processed: 0.014, SQL: 9