【问题标题】:How to intercept Http traffic [closed]如何拦截 Http 流量 [关闭]
【发布时间】:2023-03-04 12:20:01
【问题描述】:

我正在尝试开发一个 C# 应用程序,该应用程序将拦截传出的 Http 请求并将结果返回给旧系统。我们有一个遗留系统向已停止的 Web 服务发出 Http 请求。我需要拦截发出的请求并将其发送到新的 Web 服务。当响应返回时,我需要对其进行操作,然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为类似于 http listener 的东西会起作用,但我没有得到任何帮助,任何建议都将不胜感激。

【问题讨论】:

    标签: c# http intercept


    【解决方案1】:

    感谢大家的建议,这里是答案。

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

    【讨论】:

    • 我很想知道你是如何在纯 C# 中做到这一点的,而不是使用任何 3rd 方工具。但是很酷的解决方案。
    【解决方案2】:

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

    【讨论】:

    • 你说得对,这是一个选项,虽然我想在 PC 而不是网络上进行翻译。
    • 啊,所以这个遗留应用,它不是服务器应用,而是安装在人们电脑上的客户端应用?
    • 是的,没错,它是一个旧程序,我们没有源代码,所以我们需要欺骗应用程序使其认为它已连接到原始 Web 服务
    • 如果您的用户数量有限,并且所有人都信任您(例如,如果您是 IT 部门,并且用户在同一个组织中),您可以按照我的建议进行操作,并安装每台客户端 PC 上的翻译服务。如果不是这样,黑客用户的“主机”文件可能不是很流行......
    【解决方案3】:

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

    【讨论】:

    • 我知道发送的 Http 请求,但无权修改旧代码,这就是我想捕获传出请求的原因。
    【解决方案4】:

    如果您的旧系统可以按照 Dav 的建议使用代理,您也许可以使用 Foxy 之类的东西进行重定向。我不确定,但我相信某些软件使用 IE 进行 HTTP 传输,所以尝试在客户端机器上的 IE 中设置 HTTP 代理?

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2019-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-08
        相关资源
        最近更新 更多