拦截所有传出的http调用java

Iro*_*ght 5 java http intercept

类似于 HttpFilter (javax.Servlet.Filter),当添加到 web.xml 时,它可以拦截任何传入的请求到 JVM/传出(作为响应)独立于框架(Spring/CXF/Jersy 等),我试图找到一个 API可以拦截来自 JVM 的任何传出 HTTP 调用,以添加/修改独立于框架的标头。此外,通过代理路由请求听起来势不可挡。

在论坛中,Outgoing HTTP call 这个词经常被误解,所以让我用例子来解释。

让我们假设有两个 JVM,jvm1 和 jvm2。并且有从 JVM1 到 JVM2 的 HTTP 调用。我想在调用发生之前拦截从 JVM1 建立的 HTTP 连接以修改标头信息。我不希望将代码绑定到特定框架,以便我可以将拦截器捆绑为 jar 并与应用程序团队共享。web.xml 中的更改很好。

有什么建议?请帮忙!

Pet*_*Mmm 1

两个 JVM 都可以使用java.net.Socketjava.net.ServerSocket以任何方式进行通信,并且这里无法拦截任何内容。

如果您通过(透明)代理连接,则可以拦截任何 HTTP 流量。代理将拦截任何内容,您可以修改任何内容。

  • 我知道晚了三年...我最近不得不这样做并发现了你的问题。我最终创建了一个自定义通用休息客户端构建器,它使用 Feign 和 RequestInterceptor 来拦截传出呼叫。 (2认同)