我有一个我无法编辑的jar,它向http响应添加了多个标头。然后,它获取响应和ctx.writeAndFlush(resp)
是否有办法在其他地方(例如中间件)捕获此响应并对其进行编辑(添加/删除标题等)?
代码使用Netty http tranport
答案 0 :(得分:0)
确保您可以添加自己的ChannelOutboundHandlerAdapter
并覆盖write(...)
。在这里,您可以即时调整response
,然后再次调用ctx.write(...)
并将其继续传递。
只需确保将您的处理程序放在ChannelPipeline
中的其他处理程序之前即可。
答案 1 :(得分:0)
如果您有权访问ChannelHandlerContext
或Channel
,则传播响应将通过Pipeline
或ChannelOutboundHandler
进行。然后,您可以通过向Pipeline
添加write
并覆盖此处理程序的flush
或for
方法来访问响应。在这些方法中,您可以修改响应。