InternetGetCookieA 函数 (wininet.h)
检索指定 URL 的 Cookie。
语法
BOOL InternetGetCookieA(
[in] LPCSTR lpszUrl,
[in] LPCSTR lpszCookieName,
[out] LPSTR lpszCookieData,
[in, out] LPDWORD lpdwSize
);
参数
[in] lpszUrl
指向 null-terminated 字符串的指针,该字符串指定要为其检索 cookie 的 URL。
[in] lpszCookieName
未实现。
[out] lpszCookieData
指向接收 Cookie 数据的缓冲区的指针。 此参数可以 NULL。
[in, out] lpdwSize
指向指定 TCHAR 中 lpszCookieData 参数缓冲区大小的变量的指针。 如果函数成功,缓冲区将接收复制到 lpszCookieData 缓冲区的数据量。 如果 lpszCookieDataNULL,此参数将接收一个值,该值指定复制所有 cookie 数据所需的缓冲区大小,以字节计数表示。
返回值
如果函数成功,该函数将返回 true
如果该函数失败,则返回 FALSE。 若要获取扩展的错误数据,请调用 GetLastError。
以下错误值适用于 internetGetCookie
返回代码 | 描述 |
---|---|
|
指定 URL 及其所有父级没有 Cookie。 |
|
传入 lpdwSize 的值不足以复制所有 Cookie 数据。 lpdwSize 中返回的值是获取所有数据所需的缓冲区大小。 |
|
一个或多个参数无效。
lpszUrl 参数 NULL。 |
言论
InternetGetCookie 不需要调用 InternetOpen。 InternetGetCookie 在 windows\cookies 目录中检查将来设置过期日期的持久性 Cookie。 InternetGetCookie 还会在内存中搜索任何会话 Cookie,即没有 InternetSetCookie在同一进程中创建的 cookie,因为这些 Cookie 不会写入任何文件。 创建 Cookie 文件的规则在系统内部,将来可能会更改。
如 HTTP Cookie中所述,InternetGetCookie 不会返回服务器使用 Set-Cookie 标头中的“HttpOnly”属性标记为不可编写脚本的 cookie。
与 WinINet API 的其他所有方面一样,不能从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。
注意
wininet.h 标头将 InternetGetCookie 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | wininet.h |
库 | Wininet.lib |
DLL | Wininet.dll |