使用 Application.GetCookie 将 cookie 添加到 cookieContainer

Use Application.GetCookie to add cookie to cookieContainer

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

我尝试了以下代码,但出现错误:

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 但未在用户代码中处理

附加信息:cookie 的 'Value'='visit="v=1&M"... lang=v=2&lang=en-us' 部分无效。

这是解决我的错误的方法:

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;
};