我在POC上工作,我需要使用zuul作为服务器来首先路由2条路由,它将正常运行,但它具有自定义的后置过滤器,该过滤器将使用第一个响应的一些数据向另一个api发送另一个请求记录 因此需要将第一个请求的响应主体提取到我的自定义帖子过滤器中,并获取一些特定的属性,但我找不到响应,因为它始终为null,但状态码为200。 我该如何等待并从响应中获取特定属性的值,并获取实际状态代码,而不仅仅是默认值200。
我尝试使用云网关进行此实现,但是我遇到了无法提取响应的相同问题。 我也试图做一个响应装饰器,但它也失败了。
@Component
public class AddResponseHeaderFilter extends ZuulFilter {
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
System.out.println("this is my filter");
RequestContext context = RequestContext.getCurrentContext();
HttpServletRequest request = new HttpServletRequestWrapper(context.getRequest());
System.out.println(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));
HttpServletResponse servletResponse = context.getResponse();
// return an address only
System.out.println(context.getResponseBody().toString());
servletResponse.addHeader("X-Foo", UUID.randomUUID().toString());
return null;
}
}
答案 0 :(得分:0)
if (!$(event.target).hasClass('dropdown-select') &&!$(event.target).parents().hasClass('dropdown-select')) {
对我来说很好,我也可以操纵响应。
答案 1 :(得分:0)
import java.nio.charset.Charset;
import org.springframework.util.StreamUtils;
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
String requestLog = StreamUtils.copyToString(request.getInputStream(),
Charset.forName("UTF-8"));