InternetGetCookieA 函数 (wininet.h)

检索指定 URL 的 Cookie。

语法

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

参数

[in] lpszUrl

指向以 null 结尾的字符串的指针,该字符串指定要检索 Cookie 的 URL。

[in] lpszCookieName

未实现。

[out] lpszCookieData

指向接收 Cookie 数据的缓冲区的指针。 此参数可以为 NULL。

[in, out] lpdwSize

指向变量的指针,该变量指定 TCHAR 中的 lpszCookieData 参数缓冲区的大小。 如果函数成功,缓冲区将接收复制到 lpszCookieData 缓冲区的数据量。 如果 lpszCookieDataNULL,此参数将接收一个值,该值指定复制所有 Cookie 数据所需的缓冲区大小,以字节计数表示。

返回值

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

如果函数失败,则返回 FALSE。 若要获取扩展的错误数据,请调用 GetLastError

以下错误值适用于 InternetGetCookie

返回代码 说明
ERROR_NO_MORE_ITEMS
指定的 URL 及其所有父级都没有 Cookie。
ERROR_INSUFFICIENT_BUFFER
在 lpdwSize 中传递的值不足以复制所有 Cookie 数据。 lpdwSize 中返回的值是获取所有数据所需的缓冲区大小。
ERROR_INVALID_PARAMETER
一个或多个参数无效。

lpszUrl 参数为 NULL

注解

InternetGetCookie 不需要调用 InternetOpenInternetGetCookie 在 windows\cookies 目录中检查将来某个时间设置了过期日期的持久性 Cookie。 InternetGetCookie 还会在内存中搜索任何会话 Cookie,即没有 InternetSetCookie 在同一进程中创建的过期日期的 Cookie,因为这些 Cookie 不会写入任何文件。 创建 Cookie 文件的规则是系统内部的,将来可能会更改。

HTTP Cookie 中所述InternetGetCookie 不会返回服务器在 Set-Cookie 标头中使用“HttpOnly”属性标记为不可编写脚本的 Cookie。

与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

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

注意

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

要求

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

另请参阅

HTTP Cookie

InternetGetCookieEx

InternetSetCookie

InternetSetCookieEx

管理 Cookie

WinINet 函数