使用Application.GetCookie将cookie添加到cookieContainer

时间:2017-02-28 02:39:13

标签: c# wpf cookies webbrowser-control html-agility-pack

使用WPF我需要使用需要来自我的应用程序的cookie的HtmlAgilityPack.HtmlWeb进行调用。

我尝试了以下代码,但我收到了错误消息:

HtmlWeb web = new HtmlWeb();
web.PreRequest += request =>
{
   CookieContainer cookieContainer = new CookieContainer();
   cookieContainer.Add(new Cookie("name",Application.GetCookie(uri)){Domain = uri.Host});
   request.CookieContainer = cookieContainer;
    return true;
};

我收到以下错误: 类型' System.Net.CookieException'的例外情况发生在System.dll中但未在用户代码中处理

其他信息:'值' ='访问=" v = 1& M" ... lang = v = 2& lang = en-us&#39 ;部分cookie无效。

1 个答案:

答案 0 :(得分:0)

这解决了我的错误:

web.PreRequest += request =>
{
    CookieContainer cookieContainer = new CookieContainer();
    string str = Application.GetCookie(uri);
    foreach (string s in str.Split(';'))
    {
        int charIndex = s.IndexOf('=');
        string a = s.Substring(0, charIndex).Trim();
        string b = s.Substring(charIndex+1, s.Length - charIndex-1);
        cookieContainer.Add(new Cookie(a,b) { Domain = uri.Host });
    }
    request.CookieContainer = cookieContainer;
    return true;
};