2011-06-16 121 views
2

使用WinINetInternetGetCookieInternetSetCookie函数,在通过WinINet发出web请求的应用程序中获取和设置cookie相当简单。如何通过WinINet函数清除cookie?

但是,我目前还找不到清除cookie的方法。

使用空白数据(L""NULL)调用InternetSetCookie没有帮助(尝试使用和未指定cookie名称)。

试验FindFirst/NextUrlCacheGroup,DeleteUrlCacheGroup,还有FindFirst/NextUrlCacheEntryDeleteUrlCacheEntry组合。仍然没有运气。

任何想法?

回答

7

Kei,

我有同样的问题,我的一位同事帮我解决了这个问题。您需要拨打:

InternetSetOption(0, 42, NULL, 0); 

答案取自here

这为我的应用程序做了诀窍,我希望它也能为你工作。

编辑:
在函数调用中的“42”值代表“INTERNET_OPTION_END_BROWSER_SESSION”标志,其中“刷新不从硬盘驱动器上的密码缓存使用条目还复位使用时的缓存时间。同步模式为每次会话一次,此选项不需要缓冲区,InternetSetOption使用此选项。“ (http://msdn.microsoft.com/en-us/library/aa385328%28v=vs.85%29.aspx

+0

这些是我正在寻找的机器人... – n00b 2013-05-13 06:54:06

+2

当然,答案是42。 – JLRishe 2013-05-29 16:42:43

0

这是一个很老的帖子,但我想我会添加我的发现,因为我遇到了类似的问题 - 要清除cookie,您需要将其过期日期设置为过去。这也适用于会话cookie:

InternetSetCookie(“http://someurl.com”,“mycookie”“somevalue; expires = Mon,01 Jan 0001 00:00:00 GMT”);