Необработанное исключение типа "System.Net.CookieException" - C#

Узнай цену своей работы

Формулировка задачи:

Есть код. Хочу достать cookies с webbrowser1. Пишет ошибку: Необработанное исключение типа "System.Net.CookieException" в System.dll Дополнительные сведения: Недопустимая часть "Value"="7200,0" файла cookie. Что я делаю не так???
public CookieContainer GetCookieContainer()
        {
            CookieContainer container = new CookieContainer();
 
            foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
            {
                string name = cookie.Split('=')[0];
                string value = cookie.Substring(name.Length + 1);
                string path = "/";
                string domain = ".steamcommunity.com"; //change to your domain name
                container.Add(new System.Net.Cookie(name.Trim(), value.Trim(), path, domain));
            }
 
            return container;
        }
_ga=GA1.2.1317698739.1478508335; timezoneOffset=7200,0; sessionid=15c54f90d07c675352504989; steamCountry=UA%7Cd0fdd0d7b615e7c0200338daca9e4cc4 Сами куки
Дописал
value = Regex.Replace(value, ",", ".");
, но оно не пашет. Хотя куки передает с функции. Я что то зецепил когда исправил 7200,0 на 7200.0???

Решение задачи: «Необработанное исключение типа "System.Net.CookieException"»

textual
Листинг программы
  [DllImport("wininet.dll", SetLastError = true)]
    public static extern bool InternetGetCookieEx(
        string url, 
        string cookieName, 
        StringBuilder cookieData, 
        ref int size,
        Int32  dwFlags,
        IntPtr  lpReserved);
 
    private const Int32 InternetCookieHttponly = 0x2000;
 
/// <summary>
/// Gets the URI cookie container.
/// </summary>
/// <param name="uri">The URI.</param>
/// <returns></returns>
public static CookieContainer GetUriCookieContainer(Uri uri)
{
    CookieContainer cookies = null;
    // Determine the size of the cookie
    int datasize = 8192 * 16;
    StringBuilder cookieData = new StringBuilder(datasize);
    if (!InternetGetCookieEx(uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero))
    {
        if (datasize < 0)
            return null;
        // Allocate stringbuilder large enough to hold the cookie
        cookieData = new StringBuilder(datasize);
        if (!InternetGetCookieEx(
            uri.ToString(),
            null, cookieData, 
            ref datasize, 
            InternetCookieHttponly, 
            IntPtr.Zero))
            return null;
    }
    if (cookieData.Length > 0)
    {
        cookies = new CookieContainer();
        cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));
    }
    return cookies;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5
Похожие ответы