2011-06-16 71 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」);