У меня проблема, я получаю головную боль с кодом C # и файлом cookie, срок действия которого не истекает.
Я использую следующую импортированную функцию
[DllImport("wininet.dll", SetLastError = true, ExactSpelling = true, EntryPoint = "InternetGetCookieExW", CharSet = CharSet.Unicode)]
static extern bool InternetGetCookieEx([In]string lpszUrl, [In]string lpszCookieName, [Out] StringBuilder lpszCookieData, [In, Out] ref UInt32 lpdwSize, uint dwFlags, IntPtr lpReserved);
[DllImport("wininet.dll", SetLastError = true, ExactSpelling = true, EntryPoint = "InternetSetCookieExW", CharSet = CharSet.Unicode)]
static extern bool InternetSetCookieEx([In]string lpszUrl, [In]string lpszCookieName, [In]string lpszCookieData, uint dwFlags, [In] IntPtr dwReserved);
а затем я делаю
InternetSetCookieEx("http://localhost/index.php", null, "expiration=for+5+seconds; expires=Sun, 24-Mar-2019 20:16:35 GMT; path=/", 0, IntPtr.Zero)
и через 10 секунд я делаю
InternetGetCookieEx("http://localhost/index.php", null, lpszCookieData, ref lpdwzSize, 0, IntPtr.Zero);
Но это не работает, я все еще получаю cookie "expiration" в моем результате lpszCookieData
Забавный факт, это случается со мной только тогда, когда я использую Windows 7 (проверено на 2 машинах), но хорошо работает на Windows 10
Любые идеи о том, что я могу сделать неправильно ???Я также пытался использовать InternetGetCookie и InternetSetCookie и получил тот же результат.
Заранее благодарен за вашу помощь.
Редактировать: изменил название с Никогда на Никогда / Всегда.Потому что после нахождения решения я понимаю, что проблема может быть разной в зависимости от того, где вы находитесь на Земле:)