我正在尝试开发一个 C# 应用程序,它将拦截传出的 Http 请求并将结果返回给旧系统。我们有一个遗留系统向已停止的 Web 服务发出 Http 请求。我需要拦截发出的请求并将其发送到新的 Web 服务。当响应返回时,我需要对其进行操作,然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为类似于 http listener 的东西会起作用,但我没有得到任何帮助,任何建议都将不胜感激。
5 回答
谢谢大家的建议,这就是答案。
我使用Eric Lawrence 的Fiddler2来充当我的代理。然后我编写了一个 Fiddler 扩展,它拦截了我感兴趣的特定 Http 请求,瞧。
如果它在 Windows 服务器上运行,您可以编辑“hosts”文件,以便将请求重定向到其他服务器,如果需要,包括相同的主机 (localhost)。在那里,您可以让中间 Web 服务翻译请求和响应。
Does the legacy system support the specification of an http proxy? If so, that's probably what you want to do - write something that acts as a proxy, and point the old system at it.
如果您的旧系统可以按照 Dav 的建议使用代理,您也许可以使用Foxy之类的东西来进行重定向。我不确定,但我相信某些软件使用 IE 进行 HTTP 传输,所以尝试在客户端机器上的 IE 中设置 HTTP 代理?
如果不是,我认为这是一个棘手的问题,因为本质上您正在尝试拦截和修改 TCP/IP 流量,我认为这可能只有使用高级防火墙或路由器才能实现。
tcpmon是一个开源实用程序,用于监视 TCP 连接上的数据流动。tcpmon 通过将它放置在客户端和服务器之间来使用。客户端连接到 tcpmon,tcpmon 将数据转发到服务器,并在其 GUI 中显示。 https://tcpmon.dev.java.net/