需要在 Netty 中从 HttpObjectAggregator.AggregatedFullHttpRequest 获取正文

Need to get body from HttpObjectAggregator.AggregatedFullHttpRequest in Netty

我正在使用一个可配置的代理(小代理)来监听客户端生成的请求,即 chrome 浏览器。我需要 post 请求的正文。

在管道中,这是我添加的。我以为我会收到 FullHttpRequest,但收到

pipeline.addLast("decoder", new HttpRequestDecoder(8192*4, 8192 * 8,8192 * 8));
pipeline.addLast("inflater", new HttpContentDecompressor());
pipeline.addLast("aggregator", new HttpObjectAggregator(1048576));
pipeline.addLast("encoder", new HttpResponseEncoder());

对于 Post 请求,我正在获取此数据类型 HttpObjectAggregator#AggregatedFullHttpRequest。我试过调试。但是无法理解compositebytebuff的概念。

告诉我如何实现。

发现问题。我认为抛出的错误是由于一些 bytebuf 问题。这是因为,当我听​​取请求时,我得到了原始请求并发送了它。但问题是,content(bytebuf) 将在 channelRead 被触发时被释放。因此我试图访问已经发布的内容。所以当我听取请求并提供给听众时,我制作了内容的副本(因此当 channelRead 被触发时它不会被释放)。这样他就可以访问内容了。