Изменение HTTP-запроса и ответов с помощью объекта Browser Helper - PullRequest
4 голосов
/ 01 мая 2009

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

Я пытался использовать события OnNavigate2, но они даже не дают вам доступ ко всем заголовкам.

Я попытался создать асинхронный сменный протокол, но у меня нет доступа к реализации HTTP по умолчанию, и я не могу переопределить запросы HTTP по умолчанию.

Ты хоть представляешь, как это должно быть сделано? Я предпочитаю C #, но при необходимости могу использовать C ++.

Ответы [ 3 ]

3 голосов
/ 22 мая 2009

Это можно сделать с помощью URL-имен. Есть реализация чего-то подобного парнем по имени Игорь Тандетик. Вы можете найти ссылки на код в: microsoft.public.inetsdk.programming google group - просто найдите PassthruAPP. (Я бы опубликовал ссылку, но, по-видимому, новым пользователям это запрещено)

Хотя он не поддерживает изменение тела ответа напрямую. Вам нужно будет вставить хук в метод IInternetProtocolImpl :: Read.

0 голосов
/ 01 мая 2009

Кажется, что вы можете изменять только заголовки CUSTOM, используя параметры заголовков события BeforeNavigate2. Не все заголовки доступны. Это способ попытаться свести к минимуму потенциал BHOs ​​выступать в качестве троянов. Вместо этого используйте HTTP-прокси.

0 голосов
/ 01 мая 2009

Самый простой способ сделать это - использовать http-прокси для перехвата всего, что делает Fiddler.

См. Это описание Fiddler PowerToy (часть 1) .

...