Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拦截所有传出的http呼叫_Java_Http_Intercept - Fatal编程技术网

Java 拦截所有传出的http呼叫

Java 拦截所有传出的http呼叫,java,http,intercept,Java,Http,Intercept,与HttpFilter(javax.Servlet.Filter)类似,当在web.xml中添加HttpFilter时,它可以独立于框架(Spring/CXF/Jersy等)截获对JVM的任何传入请求/传出(作为响应),我试图找到一个API,它可以截获来自JVM的任何传出HTTP调用,以添加/修改独立于框架的头。另外,通过代理路由请求听起来很难 很多时候,Outgoing HTTP call这个词在论坛中被误解了,所以让我举例说明 让我们假设有两个JVM,jvm1和jvm2。还有从JVM1到JV

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

很多时候,Outgoing HTTP call这个词在论坛中被误解了,所以让我举例说明

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


有什么建议吗?请帮忙

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


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

我们使用了aspectj。这不是最好的解决方案,但却是我们唯一的选择。

谢谢彼得的回答。代理也帮不上忙。我正在尝试将JVM1收到的标题信息重新发送给JVM2。我知道延迟了3年。。。我最近不得不这么做,发现了你的问题。最后,我创建了一个自定义的通用rest客户端生成器,它使用Feign和RequestInterceptor来拦截传出调用。