我们正在尝试为ZUUL编写自定义POST路由过滤器。我们正在使用Spring Cloud Zuul。这就是我们想要做的事情 -
在Eureka注册了多个相同服务(ServiceA)的实例。我们通过ZUUL在ServiceA中创建一个rest API请求,并且由在Eureka注册的任何一个实例提供API。 我们想知道的是实例的hostip为特定请求提供服务。
我们实现了一个POST过滤器,但 RequestContext.getCurrentContext()。getRouteHost 为空;有没有其他方法来获得hostip ??
答案 0 :(得分:4)
它对我有用:
@Component
public class PostFilter extends ZuulFilter {
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.getResponseBody();
((IResponse) ctx.get("ribbonResponse")).getRequestedURI();
return null;
}
}