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:
}
}
}