使用Application.GetCookie將cookie添加到cookieContainer

c# cookies html-agility-pack webbrowser-control wpf

使用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.dll中出現“System.Net.CookieException”類型的異常,但未在用戶代碼中處理

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

一般承認的答案

這是解決我的錯誤的原因:

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


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow