Я хочу посмотреть все HTTP-запросы, выходящие из определенного приложения, и отменить их при необходимости.
Есть ли способ сделать это на С#?
Если вы можете коснуться конфигурации прокси-сервера (которая используется многими приложениями) или, если приложение не учитывает этот параметр, коснитесь конфигурации приложения, чтобы использовать прокси-сервер по вашему выбору, вы можете создать HTTP proxy, который выполнит эту работу за вас.
Если вы просто хотите профиль, есть готовый инструмент, который ведет себя так и очень хорошо, Fiddler.
Иначе вам нужно будет глубже проникнуть в сетевой стек и реализовать что-то вроде sniffer/firewall, например, используя WinPcap, Это намного сложнее сделать.
Если вы работаете с Windows, можно подключить вызовы API WinInet и делать с ними все, что вам нужно.
FreeCap (или его коммерческая версия, WideCap) делает это: позволяет отправлять TCP-трафик через прокси-сервер. Затем этот прокси-сервер может выполнить фильтрацию (например, Fiddler).
Я знаю, что это добавляет в систему больше автономных приложений, но оно работает.