Application.GetCookie를 사용하여 쿠키를 cookieContainer에 추가하십시오.

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

문제

WPF를 사용하여 내 응용 프로그램에서 쿠키가 필요한 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에서 발생했지만 사용자 코드에서 처리되지 않았습니다.

추가 정보 : '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는 합법적입니까? 예, 이유를 알아보십시오.