【发布时间】:2023-03-04 12:20:01
【问题描述】:
我正在尝试开发一个 C# 应用程序,该应用程序将拦截传出的 Http 请求并将结果返回给旧系统。我们有一个遗留系统向已停止的 Web 服务发出 Http 请求。我需要拦截发出的请求并将其发送到新的 Web 服务。当响应返回时,我需要对其进行操作,然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为类似于 http listener 的东西会起作用,但我没有得到任何帮助,任何建议都将不胜感激。
【问题讨论】:
我正在尝试开发一个 C# 应用程序,该应用程序将拦截传出的 Http 请求并将结果返回给旧系统。我们有一个遗留系统向已停止的 Web 服务发出 Http 请求。我需要拦截发出的请求并将其发送到新的 Web 服务。当响应返回时,我需要对其进行操作,然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为类似于 http listener 的东西会起作用,但我没有得到任何帮助,任何建议都将不胜感激。
【问题讨论】:
感谢大家的建议,这里是答案。
我已使用 Eric Lawrence 的 Fiddler2 作为我的代理。然后我写了一个 Fiddler 扩展,它拦截了我感兴趣的特定 Http 请求,瞧。
【讨论】:
如果它在 Windows 服务器上运行,您可以编辑“hosts”文件,以便将请求重定向到其他服务器,如果需要,包括同一主机 (localhost)。在那里,您可以让中间 Web 服务翻译请求和响应。
【讨论】:
旧系统是否支持 http 代理的规范?如果是这样,那可能就是您想要做的 - 编写一些充当代理的东西,并将旧系统指向它。
【讨论】:
如果您的旧系统可以按照 Dav 的建议使用代理,您也许可以使用 Foxy 之类的东西进行重定向。我不确定,但我相信某些软件使用 IE 进行 HTTP 传输,所以尝试在客户端机器上的 IE 中设置 HTTP 代理?
如果不是,我认为这是一个棘手的问题,因为本质上您正在尝试拦截和修改 TCP/IP 流量,我认为这可能只有使用高级防火墙或路由器才能实现。
【讨论】:
tcpmon 是一个开源实用程序,用于监控 TCP 连接上的数据流。 tcpmon 通过将它放置在客户端和服务器之间来使用。客户端连接到 tcpmon,tcpmon 将数据转发到服务器,并在其 GUI 中显示。 https://tcpmon.dev.java.net/
【讨论】: