使用 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 将注册为系统代理,大多数应用程序将自动通过它路由流量。
如果您只想捕获来自单个应用程序的流量,步骤如下:
- 调用
.Startup
时不要注册为系统代理。
- 目标应用程序的代理设置必须指向 FiddlerCore 的端口。
现在 #1 很简单,但 #2 更难,并且完全取决于目标应用程序使用的网络代码。您提到目标应用程序是托管 .NET Web 浏览器控件(即 IE)的自定义 C# 应用程序。如果是这种情况,并且应用程序还托管 FiddlerCore,那么您只需要调用
Fiddler.URLMonInterop.SetProxyInProcess("127.0.0.1:8889", String.Empty);
...在您的应用程序内部。
我正在尝试集成 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 将注册为系统代理,大多数应用程序将自动通过它路由流量。
如果您只想捕获来自单个应用程序的流量,步骤如下:
- 调用
.Startup
时不要注册为系统代理。 - 目标应用程序的代理设置必须指向 FiddlerCore 的端口。
现在 #1 很简单,但 #2 更难,并且完全取决于目标应用程序使用的网络代码。您提到目标应用程序是托管 .NET Web 浏览器控件(即 IE)的自定义 C# 应用程序。如果是这种情况,并且应用程序还托管 FiddlerCore,那么您只需要调用
Fiddler.URLMonInterop.SetProxyInProcess("127.0.0.1:8889", String.Empty);
...在您的应用程序内部。