Поделиться через


Функция InternetGetCookieA (wininet.h)

Извлекает файл cookie для указанного URL-адреса.

Синтаксис

BOOL InternetGetCookieA(
  [in]      LPCSTR  lpszUrl,
  [in]      LPCSTR  lpszCookieName,
  [out]     LPSTR   lpszCookieData,
  [in, out] LPDWORD lpdwSize
);

Параметры

[in] lpszUrl

Указатель на строку null-terminated, указывающую URL-адрес, для которого извлекаются файлы cookie.

[in] lpszCookieName

Не реализовано.

[out] lpszCookieData

Указатель на буфер, получающий данные cookie. Этот параметр может быть NULL.

[in, out] lpdwSize

Указатель на переменную, указывающую размер буфера параметров lpszCookieData в TCHARs. Если функция выполнена успешно, буфер получает объем данных, скопированных в буфер lpszCookieData. Если lpszCookieDataNULL, этот параметр получает значение, указывающее размер буфера, необходимого для копирования всех данных cookie, выраженных как число байтов.

Возвращаемое значение

Если функция выполнена успешно, функция возвращает TRUE.

Если функция завершается ошибкой, она возвращает FALSE. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Следующие значения ошибок применяются к InternetGetCookie.

Возвращаемый код Описание
ERROR_NO_MORE_ITEMS
Файл cookie для указанного URL-адреса и всех его родителей отсутствует.
ERROR_INSUFFICIENT_BUFFER
Значение, переданное в lpdwSize, недостаточно для копирования всех данных cookie. Значение, возвращаемое в lpdwSize, — это размер буфера, необходимого для получения всех данных.
ERROR_INVALID_PARAMETER
Один или несколько параметров недопустимы.

Параметр lpszUrlNULL.

Замечания

InternetGetCookie не требует вызова InternetOpen. InternetGetCookie проверки в каталоге windows\cookies для постоянных файлов cookie, которые имеют дату окончания срока действия, установленную в будущем. InternetGetCookie также выполняет поиск памяти для файлов cookie сеанса, то есть файлов cookie, которые не имеют даты окончания срока действия, созданных в том же процессе InternetSetCookie, так как эти файлы cookie не записываются в файлы. Правила создания файлов cookie являются внутренними в системе и могут измениться в будущем.

Как отмечалось в HTTP Cookie, InternetGetCookie не возвращает файлы cookie, которые сервер помечает как некриптируемые с атрибутом HttpOnly в заголовке Set-Cookie.

Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для реализации или служб сервера microsoft Windows HTTP Services (WinHTTP).
 

Заметка

Заголовок wininet.h определяет InternetGetCookie как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

файлы cookie HTTP

InternetGetCookieEx

InternetSetCookie

InternetSetCookieEx

управление файлами cookie

функций WinINet