import com.alibaba.nacos.common.utils.HttpMethod; import feign.RequestInterceptor; import feign.RequestTemplate; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; @Slf4j @Component public class CustomerFeignRequestInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate template) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (attributes != null) { HttpServletRequest request = attributes.getRequest(); template.header("sessionId", request.getHeader("sessionId")); } switch (template.method()) { case HttpMethod.GET: log.info("{}OpenFeign GET请求,请求路径:【{}", System.lineSeparator(), template.url()); break; case HttpMethod.POST: log.info("{}OpenFeign POST请求,请求路径:【{}】,请求参数:【{}】", System.lineSeparator(), template.url(), new String(template.requestBody().asBytes(), template.requestCharset())); break; default: } } }