将标题添加到ChannelHandlerContext(Netty)触发的响应中

时间:2018-12-11 10:12:48

标签: java scala netty middleware channel

我有一个我无法编辑的jar,它向http响应添加了多个标头。然后,它获取响应和ctx.writeAndFlush(resp)

是否有办法在其他地方(例如中间件)捕获此响应并对其进行编辑(添加/删除标题等)?

代码使用Netty http tranport

2 个答案:

答案 0 :(得分:0)

确保您可以添加自己的ChannelOutboundHandlerAdapter并覆盖write(...)。在这里,您可以即时调整response,然后再次调用ctx.write(...)并将其继续传递。

只需确保将您的处理程序放在ChannelPipeline中的其他处理程序之前即可。

答案 1 :(得分:0)

如果您有权访问ChannelHandlerContextChannel,则传播响应将通过PipelineChannelOutboundHandler进行。然后,您可以通过向Pipeline添加write并覆盖此处理程序的flushfor方法来访问响应。在这些方法中,您可以修改响应。