Как перехватить HTTP-вызовы из приложения? - PullRequest
2 голосов
/ 02 января 2009

Я хочу просмотреть все HTTP-запросы, исходящие из определенного приложения, и отменить их при необходимости.

Есть ли способ сделать это в C #?

Ответы [ 2 ]

7 голосов
/ 02 января 2009

Если вы можете коснуться конфигурации прокси системы (которая используется многими приложениями) или, если приложение не учитывает этот параметр, коснитесь конфигурации приложения, чтобы использовать прокси по вашему выбору, вы можете создать HTTP прокси , который сделает всю работу за вас.

Если вы просто хотите профилировать, есть готовый инструмент, который ведет себя так и очень хорошо, Fiddler .

В противном случае вам придется углубиться в сетевой стек и реализовать что-то вроде сниффера / брандмауэра, например, используя WinPcap . Это гораздо сложнее сделать.

3 голосов
/ 02 января 2009

Если вы работаете с Windows, можно перехватывать вызовы WinInet API и делать с ними все, что вы хотите.

FreeCap (или его коммерческая версия WideCap) делает это: позволяет отправлять трафик TCP через прокси-сервер. Этот прокси может затем выполнять фильтрацию (например, Fiddler ).

Я знаю, что это приносит больше автономных приложений в систему, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...