SpringBoot拦截器 打印OpenFeign请求内容


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM