Добавьте обработчик канала для gzip deflate в прокси netty
В следующем файле: https://github.com/adamfisk/LittleProxy/blob/master/src/main/java/org/littleshoot/proxy/impl/ProxyToServerConnection.java
Мне нужно добавить "обработчик канала", который будет дефлировать сжатый контент. Я понятия не имею, как это сделать, не имея знания нетто. Кто-нибудь может дать мне точку в правильном направлении?
1 ответ
Как отмечали другие, ваш код слишком длинный и усложняет жизнь людей на этом сайте, но я думаю, что смогу вам немного помочь.
Чтобы дать небольшое объяснение о netty, каждый полученный вами запрос проходит через конвейер обработчиков, и каждый запрос имеет свой собственный конвейер, связанный с ним.
Так что именно в методе, инициирующем ваш конвейер, вы должны добавить обработчик для декомпрессии, в вашем случае:
initChannelPipeline(ChannelPipeline pipeline, HttpRequest httpRequest)
Нужный обработчик - это либо HttpContentDecompressor, либо HttpContentCompressor, независимо от того, пытаетесь ли вы распаковать сжатые данные или сжать их в gzip (неясно, как вы говорите, хотите ли вы дефлировать контент gzip. Вы должны сказать, надуть его, если он распакован, или спустить его. если не сжат. Думайте об этом как о воздушном шаре. Когда надут, это занимает намного больше места).
Вы должны обратить внимание на порядок, в котором вы добавляете ваши обработчики в конвейер.
См. Channel pipe doc для более подробного объяснения.