在netty代理中为gzip deflate添加通道处理程序

时间:2015-04-28 15:29:26

标签: java netty little-proxy

在以下文件中:     https://github.com/adamfisk/LittleProxy/blob/master/src/main/java/org/littleshoot/proxy/impl/ProxyToServerConnection.java

我需要添加一个'通道处理程序'来解压缩gzip压缩内容。我不知道怎么做这个没有网络知识。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

正如其他人指出的那样,你的代码有点太长了,这使得网站上的人们的生活变得更加困难,但我想我可以帮助你一点点。

为了给出关于netty的一个小解释,你收到的每个请求都通过一个处理程序管道,每个请求都有自己的管道关联。

因此,在启动管道的方法中,您应该为解压缩添加处理程序,在您的情况下:

initChannelPipeline(ChannelPipeline pipeline, HttpRequest httpRequest)

您正在寻找的处理程序是HttpContentDecompressorHttpContentCompressor,无论您是尝试解压缩gzip压缩数据还是将其压缩为gzip(目前还不清楚您是否想要缩小gzip内容。你应该说如果没有压缩则进行gzip压缩或放气。如果没有压缩就把它放气。想象它是一个气球。当充气时,需要更多空间。)

您应该注意在管道中添加处理程序的顺序。

有关详细说明,请参阅Channel pipeline doc