Прослушивание определенного приложения с использованием C# и FiddlerCore

Я пытаюсь интегрировать управление веб-браузером C# и Fiddler Core. Я не хочу этого делать, позволяя Fiddler Core прослушивать элемент управления веб-браузера, не затрагивая ни интернет-обозреватель, ни другие интернет-браузеры.

Диаграмма ниже должна показать, чего я хочу достичь:

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

Четыре экземпляра, приведенные ниже, должны работать параллельно без вмешательства ядра Fiddler в другие браузеры. Поэтому, если я не хочу изменять HTML-код ответа в своем пользовательском приложении, это не повлияет на другие браузеры.

Я уже давно ищу в Google, но не вижу конкретного примера, чтобы начать.

Заранее спасибо, ребята, любая помощь будет принята с благодарностью.

1 ответ

Решение

FiddlerCore предоставляет информацию о вызывающем процессе в каждом сеансе X-ProcessInfo флаг.

По умолчанию FiddlerCore регистрируется как системный прокси, и большинство приложений автоматически направляют свой трафик через него.

Если вы хотите захватывать трафик только из одного приложения, выполните следующие шаги:

  1. Не регистрируйтесь как системный прокси при звонке .Startup,
  2. Параметры прокси-сервера целевого приложения должны указывать на порт FiddlerCore.

Теперь № 1 тривиален, но № 2 сложнее и полностью зависит от того, какой сетевой код использует целевое приложение. Вы упомянули, что целевое приложение - это пользовательское приложение C#, на котором размещается элемент управления.NET Web Browser (который является просто IE). Если это так, и если приложение также содержит FiddlerCore, то вам нужно только позвонить

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

... внутри вашего приложения.

Другие вопросы по тегам