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


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

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

Синтаксис

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

Параметры

[in] lpszUrl

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

[in] lpszCookieName

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

[out] lpszCookieData

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

[in, out] lpdwSize

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

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

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

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

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

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

Параметр lpszUrl имеет значение NULL.

Комментарии

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

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

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

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

Примечание

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

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wininet.h
Библиотека Wininet.lib
DLL Wininet.dll

См. также раздел

Файлы cookie HTTP

InternetGetCookieEx

InternetSetCookie

InternetSetCookieEx

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

Функции WinINet