Application.GetCookieを使用してCookieContainerにCookieを追加する

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

質問

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で発生しましたが、ユーザーコードで処理されませんでした

追加情報:Cookieの 'Value' = '訪問= "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;
};



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ