c# - WebBrowser 与 WebBrowserBase 类

标签 c# asp.net browser webbrowser-control iwebbrowser2

在我引用非 .net 内置(替代方案)之前

我想了解

内置的.Net类可以提供使用:

WebBrowserWebBrowserBase

我想知道的是:这两者之间有什么区别?

如 msdn 在后面一篇中所述 - WebBrowserBase -

“此 API 支持 .NET Framework 基础结构,不适合直接在您的代码中使用

问题始于一个简单的任务:从网站检索文件(数据源 xml)。 听起来很简单?所以你可以使用任何方法...,最好是最简单且资源高效的方法。

但是!

场景是:同一来源(只有一个可靠)最近通过使用 cookies 阻止了自动流量,因为我可以理解 WebClient 正在使用与您的主要浏览器(在我的情况下为 IE9)相同的资源。

...经过我的研究,使用网络浏览器“引擎”作为文件检索器...

会完美地完成这项工作。

您可以使用任何(不仅仅是 Microsoft IE)

关于我所做的其他测试,您可以访问:

http://seleniumhq.org/docs/03_webdriver.html

+

https://code.google.com/p/selenium/downloads/list

最佳答案

你的问题

scenario is, that same source (single one to be reliable) was blocking automatic traffic recently by using cookies`

好吧,如果这是你的问题(cookies),你为什么不试试这个网络客户端呢?

public class CookieWebClient : WebClient
{
    private readonly CookieContainer _cookies = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = _cookies;
        }
        return request;
    }
}

WebBrowser 与 WebBrowserBase

至于WebBrowser和WebBrowserBase的区别,WebBrowser继承了WebBrowserBase来扩展它,使其成为一个功能齐全的网页浏览器。如果您想自定义超出支持范围的 WebBrowser,WebBrowserBase 会派上用场 - 您可以覆盖某些内容并使用 WebBrowserBase 来扩展功能等。一般来说,除非绝对必要,否则您应该坚持只使用普通的 WebBrowser 控件 - 并且仅当您正在呈现网页或想使用它来非法执行 javascript 时。

关于扩展 WebBrowser 的一般评论

我个人发现的对网络浏览器最有用的修改之一是公开下载标志,因此您可以控制网络浏览器是否下载图像等。如何执行此操作的一个很好的示例如下:https://stackoverflow.com/a/7738174/184746

关于c# - WebBrowser 与 WebBrowserBase 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433369/

相关文章:

android - Android 浏览器上的自动纸牌花色更换?

c# - 如何防止winforms设计器将Text属性设置为实例名称

c# - 如何在多个连接场景中显示枚举值?

c# - 在.NET Core中使用SHA-1

c# - 在 ASP 代码隐藏中,在重定向后添加 return 关键字有什么好处吗?

asp.net - 如何在 asp.Net 的脚本标签上使用 runat ="server"

c# - 用前缀字符填充以始终具有 12 个字符的字符串

asp.net - 将含有特殊字符的字符串插入RTF

python - 在 Python 程序中嵌入 Web 浏览器

JavaScript 在 Firefox 3 中异步加载(根据 Firebug)?