【发布时间】:2019-05-12 07:23:17
【问题描述】:
我有一个无法编辑的 jar,它在 http 响应中添加了几个标头。然后它接受响应和ctx.writeAndFlush(resp)
有没有办法在其他地方(如中间件)捕获此响应并对其进行编辑(添加/删除标题等)?
代码使用Netty http 传输
【问题讨论】:
标签: java scala netty middleware channel
我有一个无法编辑的 jar,它在 http 响应中添加了几个标头。然后它接受响应和ctx.writeAndFlush(resp)
有没有办法在其他地方(如中间件)捕获此响应并对其进行编辑(添加/删除标题等)?
代码使用Netty http 传输
【问题讨论】:
标签: java scala netty middleware channel
如果您有权访问 ChannelHandlerContext (ctx)、Channel 或 Pipeline,响应会通过它们传播。然后,您可以通过将ChannelOutboundHandler 添加到Pipeline 并覆盖此处理程序的write 或flush 方法来访问响应。在这些方法中,您可以修改响应。
【讨论】:
当然,您可以添加自己的ChannelOutboundHandlerAdapter 并覆盖write(...)。您可以在此处即时调整response,然后再次调用ctx.write(...) 并将其传递。
只需确保将您的处理程序放在 ChannelPipeline 中的其他处理程序之前。
【讨论】: