如何拦截Http流量

时间:2009-09-23 10:06:27

标签: c# http intercept

我正在尝试开发一个C#应用程序,它将拦截传出的Http请求并将结果返回给旧系统。我们有一个遗留系统,它向已停产的Web服务发出Http请求。我需要拦截即将发出的请求并将其发送到新的Web服务。当响应返回时,我需要操纵它然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为http听众的方式会起作用,但我没有得到任何结论,任何建议都会非常感激。

6 个答案:

答案 0 :(得分:4)

感谢大家的建议,以下是答案。

我曾使用Eric Lawrence的Fiddler2作为我的代理人。然后我写了一个Fiddler扩展,它拦截了我感兴趣的特定Http请求。瞧。

答案 1 :(得分:2)

如果这是在Windows服务器上运行,您可以编辑'hosts'文件,以便将请求重定向到其他服务器,包括同一主机(localhost),如果需要。在那里,您可以让中间Web服务翻译请求和响应。

答案 2 :(得分:1)

遗留系统是否支持http代理的规范?如果是这样,那可能就是你想做的事情 - 写一些充当代理的东西,并将旧系统指向它。

答案 3 :(得分:1)

如果您的遗留系统可以像Dav建议的那样使用代理,您可以使用Foxy之类的内容来执行重定向。我不确定,但我相信有些软件使用IE进行HTTP传输,所以尝试在客户机上的IE中设置HTTP代理?

如果不是,我认为这是一个棘手的问题,实际上你正试图拦截和修改TCP / IP流量,我认为这可能只有高级防火墙或路由器才能实现。

答案 4 :(得分:0)

tcpmon 是一个开源实用程序,用于监视TCP连接上的数据流。将tcpmon放在客户端和服务器之间。客户端连接到tcpmon,tcpmon将数据转发到服务器,并在其GUI中显示它。 https://tcpmon.dev.java.net/

答案 5 :(得分:-2)

你可以write an HTTP Module