使用浏览器帮助程序对象修改HTTP请求和响应

时间:2009-04-30 22:11:31

标签: windows internet-explorer http bho

我想使用Internet Explorer浏览器帮助程序对象修改HTTP请求标头。 我基本上需要为每个请求更改几个标头,然后在返回浏览器之前修改响应。

我尝试使用OnNavigate2事件,但这些事件甚至不能让您访问所有标题。

我尝试制作异步可插拔协议,但后来我无法访问默认的HTTP实现,我无法覆盖默认的HTTP请求。

你知道怎么做这个吗? 我更喜欢C#,但如果需要可以使用C ++。

3 个答案:

答案 0 :(得分:3)

可以使用URL标记来完成。 有一个名叫Igor Tandetik的人实现了类似的东西。 您可以在以下位置找到代码的链接:microsoft.public.inetsdk.programming google group - 只需查找PassthruAPP即可。 (我会发布一个链接,但显然不允许新用户这样做)

它不直接支持修改响应体。 您必须在IInternetProtocolImpl :: Read方法中插入一个钩子。

答案 1 :(得分:0)

最简单的方法是使用http代理拦截Fiddler所做的一切。

请参阅Fiddler PowerToy (Part 1)

的此说明

答案 2 :(得分:0)

您似乎只能使用BeforeNavigate2事件的headers参数修改CUSTOM标头。并非所有标头都可访问。这是一种尽量减少BHO作为特洛伊木马的潜力的方法。改为使用HTTP代理。