import com.alibaba.fastjson.JSONObject;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import feign.Target;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.net.URLEncoder;
@Component
public class ChangeServiceNameRequestIntecepor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
//@FeignClient("user")
Target<?> t = requestTemplate.feignTarget();
System.out.println(t.name());
//>> user
System.out.println(t.url());
//>> http://user
//这里给出构造完整的请求了,这里可以将服务名称改掉了,或者直接换成真实ip
//我想要将user 改成 usernew 服务
requestTemplate.target("http://usernew");
}
}
Target.name 得到此FeignClient指定的名称 比如 user
可以通过调用requestTemplate.target(“http://usernew”)去修改服务名称。最终调用的服务是
usernew。