拦截器获取http的body后HttpServletRequest不可重复读

java 复制代码
public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
{
    private final byte[] body;

    public RepeatedlyRequestWrapper(HttpServletRequest request, ServletResponse response) throws IOException
    {
        super(request);
        request.setCharacterEncoding(Constants.UTF8);
        response.setCharacterEncoding(Constants.UTF8);

        body = HttpHelper.getBodyString(request).getBytes(Constants.UTF8);
    }

    @Override
    public BufferedReader getReader() throws IOException
    {
        return new BufferedReader(new InputStreamReader(getInputStream()));
    }

    @Override
    public ServletInputStream getInputStream() throws IOException
    {
        final ByteArrayInputStream bais = new ByteArrayInputStream(body);
        return new ServletInputStream()
        {
            @Override
            public int read() throws IOException
            {
                return bais.read();
            }

            @Override
            public int available() throws IOException
            {
                return body.length;
            }

            @Override
            public boolean isFinished()
            {
                return false;
            }

            @Override
            public boolean isReady()
            {
                return false;
            }

            @Override
            public void setReadListener(ReadListener readListener)
            {

            }
        };
    }
}

拦截器

相关推荐
饺子大魔王的男人6 分钟前
远程调试总碰壁?局域网成 “绊脚石”?Remote JVM Debug与cpolar的合作让效率飙升
网络·jvm
cdprinter6 分钟前
信刻跨网数据光盘安全摆渡产品通过多项权威认证
网络·安全
以太浮标9 分钟前
华为eNSP模拟器综合实验之- VLAN Mapping技术解析
运维·网络·华为·信息与通信
weixin_4432906910 分钟前
【华为HCIA路由交换认证指南】第二章 TCP/IP
网络·tcp/ip·华为
雅欣鱼子酱3 小时前
USB Type-C PD取电(诱骗,诱电,SINK),筋膜枪专用取电芯片
网络·人工智能·芯片·电子元器件
AI大模型应用之禅11 小时前
全球股市估值与可持续农业垂直种植技术的关系
网络·ai
掘根11 小时前
【仿Muduo库项目】HTTP模块2——HttpRequest子模块,HttpResponse子模块
网络·网络协议·http
MOON404☾14 小时前
006.Backdoor后门编写
网络·安全·网络安全·系统安全
ha204289419414 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
李白你好15 小时前
Burp Suite插件 | 高级HTTP头操作工具
网络·网络协议·http