在我引用非.net内置(可选)之前
我想了解
内置的.Net
类可以提供使用:
CCD_ 2&WebBrowserBase
类
我想知道的是:这两者之间有什么区别。
正如msdn在后来的一篇文章中所指出的那样-WebBrowserBase-
"此API支持.NET Framework基础设施,不打算直接从代码中使用">
这个问题从一个简单的任务开始:从网站检索一个文件(datasourcexml)。听起来很简单?所以你可以使用任何方法。。。,最好是最简单的&资源高效型。
但是!
场景是:同一个来源(可靠的单一来源)最近通过使用cookie阻止了自动流量,正如我所能理解的那样,WebClient正在使用您的主要浏览器的相同资源(在我的情况下是IE9)。
经过我的研究,使用WebBrowser"引擎"作为文件检索器。。。
将完美地完成这项工作。
你可以使用任何(不仅仅是微软IE)
关于我做的其他测试,你可以访问:
http://seleniumhq.org/docs/03_webdriver.html
+
https://code.google.com/p/selenium/downloads/list
您的问题
场景是,同一个来源(可靠的单一来源)最近通过使用cookie `阻止了自动流量
如果这是你的问题(cookie),你为什么不试试这个网络客户端?
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,对其进行了扩展,使其成为一个功能齐全的web浏览器。WebBrowserBase的用武之地是,如果您想自定义超出支持范围的WebBrowser,您可以覆盖某些内容,并使用WebBrowserBase来扩展功能等。作为一条规则,除非你绝对必须,否则你应该坚持只使用普通的WebBrowser控件——而且只有当你正在渲染网页或想用它来笨拙地执行javascript时。
浅谈WebBrowser的一般扩展
我个人发现的对网络浏览器最有用的修改之一是公开下载标志,这样你就可以控制网络浏览器是否下载图像等。如何做到这一点的一个很好的例子是:https://stackoverflow.com/a/7738174/184746