如何实现对openfeign的请求request和响应response的拦截

  • 通过实现对openfeign的请求request和响应response的拦截,可以在request和response添加自定义的需求及业务

  • 拦截openfeign的请求,并添加业务


import javax.servlet.http.HttpServletRequest;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import io.micrometer.core.instrument.util.StringUtils;
import io.seata.core.context.RootContext;

@Configuration
public class ComonConfig {
   

	@Bean
	public RequestInterceptor requestInterceptor() {
   
		return new RequestInterceptor() {
   
			@Override
			public void apply(RequestTemplate requestTemplate) {
   
				ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
						.getRequestAttributes();
				HttpServletRequest request = attributes.getRequest(); // 老 request
				
	            // 从Seata获取XID,并将其添加到Feign请求标头中
	            String xid = RootContext.getXID();
	            if (xid != null) {
   
	                requestTemplate.header("TX_XID", xid);
	            }
				
				requestTemplate.header("Cookie", request.getHeader("Cookie")); // 新request
				String pageSizeDefault = "20";
				String pageNumDefalut = "1";
				String pageSize = request.getParameter("pageSize");
				String pageNum = request.getParameter("pageNum");
				if (StringUtils.isNotEmpty(pageSize)) {
   
					pageSizeDefault = pageSize;
				}
				if (StringUtils.isNotEmpty(pageNum)) {
   
					pageNumDefalut = pageNum;
				}
				requestTemplate.header("pageSize", pageSizeDefault);
				requestTemplate.header("pageNum"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值