我使用netty HexDumpProxyBackendHandler示例作为我的代理的基础。我的管道:
new HttpRequestDecoder(),
new HttpContentDecompressor(),
new HttpContentCompressor(),
new HttpObjectAggregator(65536),
new ProxyFrontendHandler()
在ProxyFrontendHandler
我尝试修改HttpRequest
对象,然后再将其发送到后端服务器。
因此,我在channelRead方法中获得了AggregatedFullHttpRequest
个对象,并使用EmbeddedChannel(new HttpRequestEncoder())
将其转换为ByteBuf
,但这并不起作用。对于POST请求,它生成具有空主体的http请求,仅生成标头。这样做的正确方法是什么?
答案 0 :(得分:0)
我在ProxyFrontendHandler
中的POST时获得了内容:
@Override
public void channelRead0(ChannelHandlerContext ctx,
FullHttpRequest req) throws Exception {
ByteBuf content = req.getContent(); // this way?
}