【发布时间】:2012-02-28 01:02:01
【问题描述】:
我正在使用一个 VB.NET 程序,该程序使用 WebBrowser 控件来浏览 Web。我需要导航到的网站突然变得对 IE 不友好。所以,我想尝试让网站看起来 WebBrowser 控件不是 IE,而是 Mozilla Firefox 浏览器。 我怎样才能做到这一点? 我可以更改控件发送的 HTTPrequest 标头吗?或类似的东西? 谢谢!
---------- 编辑 --------------
嗨,xxbbcc!谢谢你的大回答。 HttpWebRequest 是我剩下的唯一选择。我过去曾经使用过它,但我怀疑它是否适用于我需要的网站。
问题是 - 该网站使用大量脚本来构建网页,而必须单击的按钮实际上是一个链接,该链接会唤起脚本,然后进一步构建页面。最终的 HTML 代码正是我所需要的。
现在问题比我想象的还要复杂。在请求标头中指定什么用户代理绝对无关紧要(感谢 jfmags,我通过 Fiddler 找到了它)。似乎重要的是,在站点将浏览器重定向到 HTTPS 地址后,Firefox 继续发送 HTTP/1.1 请求,而 IE 开始发送 HTTP/1.0 请求,这就是它可能失败的原因。这是由网站所有者设计的。我在这里http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/how-to-force-ie-to-use-http11-over-ssl-through/360eca2d-e290-4078-ad37-7665bec706c4 在网上找到了关于此的讨论,但似乎还没有定论。我曾经使用 Mozilla ActiveX 控件,但现在它已经过时了,因为该项目已停止。
我所说的网站就是这个臭名昭著的site。
我知道,我是海盗,这很糟糕。通过下载一部电影,我可能会给一些巨大且非常富有的公司造成数百万美元的损失。但是我住的地方,根本买不到原声片,都被配音给坑了。那么,我还有哪些选择呢?我喜欢电影。
我会尝试看看 HttpWebRequest 是否可以解决这个问题。
【问题讨论】:
-
谢谢,jfmags!我也快到了。不过,我不太擅长 C#。它在 VB.NET 中看起来如何?
-
好的。我试过这个:WebBrowser1.Navigate(TextBox1.Text, "", Nothing, "User-Agent: Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1")。不起作用,可能是因为网站重定向:(
-
你确定这是 IE 的东西吗?您可以更改使用 Fiddler 发送的用户代理,以确保它可以解决问题。也许还有其他事情发生。
-
是的 - 就是这样。如果你安装它,你可以在规则菜单下更改用户代理,看看响应是否改变。
标签: .net vb.net webbrowser-control