Как перехватить HTTP-вызовы из приложения?

2

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

Есть ли способ сделать это на С#?

Теги:
http
profiling

2 ответа

7
Лучший ответ

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

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

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

3

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню