栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Jersey拦截器获取请求正文

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Jersey拦截器获取请求正文

这是一种可以实现的方法,与Jersey实现其日志记录过滤器的方式非常相似。您可以阅读该实体并将其粘贴回请求,因此您不小心在过滤器中不使用它。

import com.sun.jersey.api.container.ContainerException;import com.sun.jersey.core.util.ReaderWriter;import com.sun.jersey.spi.container.ContainerRequest;import com.sun.jersey.spi.container.ContainerRequestFilter;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;public class JerseyFilter implements ContainerRequestFilter {    @Override    public ContainerRequest filter(ContainerRequest request) {        ByteArrayOutputStream out = new ByteArrayOutputStream();        InputStream in = request.getEntityInputStream();        final StringBuilder b = new StringBuilder();        try { if (in.available() > 0) {     ReaderWriter.writeTo(in, out);     byte[] requestEntity = out.toByteArray();     printEntity(b, requestEntity);     request.setEntityInputStream(new ByteArrayInputStream(requestEntity)); } return request;        } catch (IOException ex) { throw new ContainerException(ex);        }    }    private void printEntity(StringBuilder b, byte[] entity) throws IOException {        if (entity.length == 0) return;        b.append(new String(entity)).append("n");        System.out.println("#### Intercepted Entity ####");        System.out.println(b.toString());    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号