java – 如何在Zuul post过滤器中获取响应体?
发布时间:2020-05-24 16:29:54 所属栏目:Java 来源:互联网
导读:在后置过滤器中使用Zuul作为代理时如何读取响应主体? 我试图像这样调用代码: @Componentpublic class PostFilter extends ZuulFilter { private static final Logger log = LoggerFactory.getLogger(PostFilter.class); @Override pub
|
在后置过滤器中使用Zuul作为代理时如何读取响应主体? 我试图像这样调用代码: @Component
public class PostFilter extends ZuulFilter {
private static final Logger log = LoggerFactory.getLogger(PostFilter.class);
@Override
public String filterType() {
return "post";
}
@Override
public int filterOrder() {
return 2000;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.getResponseBody(); // null
// cant't do this,cause input stream is used later in other filters and I got InputStream Closed exception
// GZIPInputStream gzipInputStream = new GZIPInputStream(stream);
return null;
}
}
解决方法我成功克服了这一点.解决方案包括4个步骤:>将ctx.getResponseDataStream()读入ByteArrayOutputStream >从第1点读取流将导致无法再次读取流,因此这样您就传递了尚未读取的新流 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
