Есть ли в .NET какой-либо способ программно прослушивать HTTP-трафик?
-
02-07-2019 - |
Вопрос
Я использую автоматизацию браузера для тестирования веб-сайтов, но мне нужно проверять HTTP-запросы из браузера (т. Е. изображения, внешние скрипты, объекты XMLHttpRequest).Есть ли способ программно создать экземпляр прокси-сервера для использования браузером, чтобы увидеть, что он отправляет?
Я уже использую Fiddler для отслеживания трафика, но мне нужно что-то без пользовательского интерфейса, что я мог бы использовать при непрерывной интеграции сборки.
Решение
Я кратко рассмотрел то же самое и рассмотрел два решения (но еще не пробовал их).
Первое предложение, которое у меня есть, было бы использовать класс HttpListener (и, возможно, Webclient или другую систему.Классы, связанные с Net http, для повторной отправки запросов в ваше приложение) в качестве прокси-сервера для тестовых вызовов WebBrowser.У меня нет опыта работы с HttpListener, но это выглядит как простой и многообещающий способ передавать вызовы через прокси в ваше приложение.
Второе предложение, которое у меня есть, - это делать то, что делает Fiddler:используйте Http-стек WinInet на вашем тестовом компьютере в качестве прокси-сервера (с каким-нибудь фильтром, который сузит его до вызовов вашего веб-браузера).К сожалению, лучший пример этого, который я смог найти, - это сам Fiddler, и единственный известный мне способ получить код - это Reflector.Возможно, можно было бы добраться до кода прокси-сервера Fiddler другим способом, но у меня не было времени полностью изучить этот путь.
ПРИВЕТ!, Ричард