WebBrowser与WebBrowserBase类

Lon*_*der 2 c# browser asp.net webbrowser-control iwebbrowser2

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

我想知道

内置的.NetClasses可以提供使用:

WebBrowserWebBrowserBase课程

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

正如msdn在后一篇文章中提到的 - WebBrowserBase -

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

问题始于一个简单的任务:从网站检索文件(datasource xml).声音简单?所以你可以使用任何方法......,最好是最简单和资源最有效的方法.

但是!

场景是:相同的源(单一的可靠)最近阻止了自动流量,使用cookie,因为我可能低于WebClient使用主浏览器的相同资源(在我的情况下是IE9).

....经过我的研究,使用WebBrowser"引擎"作为文件检索器......

将完美地完成工作.

你可以使用任何(不仅仅是微软的IE)

关于我可以访问的其他测试:

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

+

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

cae*_*say 6

你的问题

场景是,相同的源(单一的可靠)最近通过使用cookie来阻止自动流量

好吧,如果这是你的问题(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;
    }
}
Run Code Online (Sandbox Code Playgroud)

WebBrowser与WebBrowserBase

至于WebBrowser和WebBrowserBase之间的区别,WebBrowser继承WebBrowserBase以扩展它并使其成为一个功能齐全的Web浏览器.WebBrowserBase派上用场的地方在于,如果您希望自定义WebBrowser超出支持范围,您可以覆盖内容并使用WebBrowserBase来扩展功能等.作为一项规则,除非你绝对必须,否则你应该坚持只使用普通的WebBrowser控件 - 并且只有当你正在渲染网页或者想用它来骇人地执行javascript时.

关于扩展WebBrowser的评论

我个人为webbrowser发现的最有用的修改之一是暴露了下载标志,因此你可以控制webbrowser是否下载图像等.这里有一个很好的例子:https://stackoverflow.com/一个/十八万四千七百四十六分之七百七十三万八千一百七十四