InternetGetCookieExA 函数 (wininet.h)

InternetGetCookieEx 函数检索存储在与指定 URL 关联的 Cookie 中的数据。 与 InternetGetCookie 不同InternetGetCookieEx 可用于限制检索到单个 Cookie 名称的数据,或者根据策略限制与不受信任的站点或第三方 Cookie 关联的数据。

语法

BOOL InternetGetCookieExA(
  [in]                LPCSTR  lpszUrl,
  [in]                LPCSTR  lpszCookieName,
  [in, out, optional] LPSTR   lpszCookieData,
  [in, out]           LPDWORD lpdwSize,
  [in]                DWORD   dwFlags,
  [in]                LPVOID  lpReserved
);

参数

[in] lpszUrl

指向以 null 结尾的字符串的指针,该字符串包含要检索的 Cookie 与之关联的 URL。 此参数不能为 NULL ,或者 InternetGetCookieEx 失败并返回 ERROR_INVALID_PARAMETER 错误。

[in] lpszCookieName

指向以 null 结尾的字符串的指针,该字符串包含要检索的 Cookie 的名称。 该名称区分大小写。

[in, out, optional] lpszCookieData

指向用于接收 Cookie 数据的缓冲区的指针。

[in, out] lpdwSize

指向 DWORD 变量的指针。

在输入时,变量必须包含 pchCookieData 参数指向的缓冲区的大小(以 TCHAR 为单位)。

退出时,如果函数成功,则此变量包含复制到缓冲区中的 Cookie 数据的 TCHAR 数。 如果 NULL 作为 lpszCookieData 参数传递,或者如果函数失败并出现 错误ERROR_INSUFFICIENT_BUFFER,则变量包含接收 Cookie 数据所需的缓冲区大小(以 BYTE 为单位)。

此参数不能为 NULL ,或者 InternetGetCookieEx 失败并返回 ERROR_INVALID_PARAMETER 错误。

[in] dwFlags

一个标志,用于控制函数如何检索 Cookie 数据。 此参数的取值可为下列值之一:

含义
INTERNET_COOKIE_HTTPONLY
启用对标记为“HTTPOnly”的 Cookie 的检索。

如果公开可编写脚本的接口,请不要使用此标志,因为这具有安全隐患。 仅当可以保证永远不会通过提供的扩展性机制向第三方代码公开 Cookie 时,才必须使用此标志。

版本: 需要 Internet Explorer 8.0 或更高版本。

INTERNET_COOKIE_THIRD_PARTY
如果策略显式允许检索指定 URL 的所有 Cookie,则仅检索第三方 Cookie。
INTERNET_FLAG_RESTRICTED_ZONE
仅检索指定 URL 不受信任时允许的 Cookie;也就是说,如果属于URLZONE_UNTRUSTED区域,则为 。

[in] lpReserved

保留供将来使用。 设置为 NULL。

返回值

如果函数成功,则函数返回 TRUE

如果函数失败,则返回 FALSE。 若要获取特定的错误值,请调用 GetLastError

如果将 NULL 传递给 lpszCookieData,则调用将成功,并且函数不会 设置ERROR_INSUFFICIENT_BUFFER

此函数可能会设置以下错误代码。

返回代码 说明
ERROR_INSUFFICIENT_BUFFER
如果检索到的 Cookie 数据大于 pcchCookieData 参数指向的缓冲区大小,或者该参数为 NULL,则返回。
ERROR_INVALID_PARAMETER
如果 pchURLpcchCookieData 参数为 NULL,则返回 。
ERROR_NO_MORE_ITEMS
如果无法检索指定的 Cookied 数据,则返回 。

注解

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

wininet.h 标头将 InternetGetCookieEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wininet.h
Library Wininet.lib
DLL Wininet.dll

另请参阅

HTTP Cookie

InternetGetCookie

InternetSetCookie

InternetSetCookieEx

管理 Cookie

WinINet 函数