在HttpTests中,有一种方法可以使用身份验证
request.Credentials = CredentialCache.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud)
在Html Agility Pack中有类似的东西吗?我想测试我的localhost项目,但它收到了:
HTTP错误401.2 - 未经授权您无权查看此页面
我找到了Jon Gallant的博客:http://blog.jongallant.com/2012/07/htmlagilitypack-windows-authentication.html#.UJEQam8xol8
创建一个新的HtmlWeb实例,创建一个新的WebProxy,将UseDefaultCredentials设置为true,在webload上创建一个名为document的新变量,将URL设置为GET请求,插入默认凭据并获取应用程序的系统凭据.
var web = new HtmlWeb();
web.PreRequest = delegate(HttpWebRequest webRequest)
{
webRequest.Timeout = 1200000;
return true;
};
var proxy = new WebProxy() { UseDefaultCredentials = true };
var doc = web.Load("http://localhost:2120", "GET", proxy,
CredentialCache.DefaultNetworkCredentials);
var linksOnPage = from lnks in document.DocumentNode.Descendants()
where lnks.Name == "a" &&
lnks.Attributes["href"] != null &&
lnks.InnerText.Trim().Length > 0
select new
{
Url = lnks.Attributes["href"].Value,
Text = lnks.InnerText
};
linksOnPage.All(t => { Console.WriteLine(t.Text + " : " + t.Url); return true; });
Run Code Online (Sandbox Code Playgroud)