【问题标题】:Use Application.GetCookie to add cookie to cookieContainer使用 Application.GetCookie 将 cookie 添加到 cookieContainer
【发布时间】:2017-02-28 13:25:44
【问题描述】:

使用 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”类型的异常,但未在用户代码中处理

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-11
      • 2020-03-11
      • 1970-01-01
      • 2015-08-17
      • 2010-11-15
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多