使用 C# 和 FiddlerCore 收听特定应用程序

Listen to a specific application using C# and FiddlerCore

我正在尝试集成 C# Web 浏览器控件和 Fiddler Core。我不想通过让 Fiddler Core 监听 Web 浏览器控件而不影响任何 Internet Explorer 或其他 Internet 浏览器来做到这一点。

下图应该显示了我想要实现的目标:

Internet Explorer -> Internet
Chrome -> Internet
Other Browsers -> Internet
Web Browser Control (Custom C# App) -> Fiddler Core -> Internet

下面的四个实例应该 运行 并行,而 fiddler 核心不会干扰其他浏览器。因此,如果我不想在我的自定义应用程序中更改响应 HTML,这不会影响其他浏览器。

我已经在 Google 上搜索了一段时间,但我找不到任何具体的例子来帮助我入门。

提前谢谢你们,任何帮助将不胜感激。

FiddlerCore 在每个会话的 X-ProcessInfo 标志中公开调用进程信息。

默认情况下,FiddlerCore 将注册为系统代理,大多数应用程序将自动通过它路由流量。

如果您只想捕获来自单个应用程序的流量,步骤如下:

  1. 调用.Startup时不要注册为系统代理。
  2. 目标应用程序的代理设置必须指向 FiddlerCore 的端口。

现在 #1 很简单,但 #2 更难,并且完全取决于目标应用程序使用的网络代码。您提到目标应用程序是托管 .NET Web 浏览器控件(即 IE)的自定义 C# 应用程序。如果是这种情况,并且应用程序还托管 FiddlerCore,那么您只需要调用

Fiddler.URLMonInterop.SetProxyInProcess("127.0.0.1:8889", String.Empty);

...在您的应用程序内部。