很多人不知道如何去獲取IE瀏覽器中的Cookie信息,其實獲取Cookie的方式很簡單,只需要調用InternetGetCookie這個API就可以獲得了。
InternetGetCookie的聲明方式如下:
Private Declare Function InternetGetCookie Lib "wininet.dll" Alias "InternetGetCookieA" (ByVal lpszUrlName As String, ByVal lpszCookieName As String, ByVal lpszCookieData As String, lpdwSize As Long) As Boolean
我們要獲取www.baidu.com這個域名之下的Cookie信息可以這么寫:
Dim buffer As String * 8096If InternetGetCookie("http://www.baidu.com", vbNullString, buffer, 8096) Then MsgBox "獲取到的Cookie信息如下: " & vbCrLf & bufferEnd If
獲取結果:
獲取到的Cookie信息如下: bdshare_firstime=1385336980826; sug=3; sugstore=1; BD_TMP_CK=true; BAIDUID=F1F6DA77AD0E469EEF3301C98F1CB0A1:FG=1; cflag=65535%3A1; BAIDU_WISE_UID=wapp_1385534156727_907; locale=zh; bdime=0; NBID=D3EEB391CF4DCDA2ED0B6035E872886D:FG=1
在用InternetGetCookie獲取Cookie信息有個缺點,它無法獲得帶有HTTP_ONLY標記的Cookie。
針對這個問題的解決辦法是使用InternetGetCookie這個API的擴展版InternetGetCookieEx來獲取,不過它也有問題,對某些版本的IE支持不怎么好。
InternetGetCookieEx的聲明方式如下:
Private Const INTERNET_COOKIE_HTTPONLY As Integer = 8192Private Declare Function InternetGetCookieEx Lib "wininet.dll" Alias "InternetGetCookieExA" (ByVal url As String, ByVal cookieName As String, ByVal cookieData As String, ByRef size As Integer, ByVal flags As Integer, ByVal pReserved As Long) As Boolean
調用方式也差不多:
Dim buffer As String * 8096If InternetGetCookieEx("http://www.baidu.com", vbNullString, buffer, 8096, INTERNET_COOKIE_HTTPONLY, 0) Then MsgBox "獲取到的Cookie信息如下: " & vbCrLf & bufferEnd If
獲取結果:
獲取到的Cookie信息如下: bdshare_firstime=1385336980826; sug=3; sugstore=1; BD_TMP_CK=true; BAIDUID=F1F6DA77AD0E469EEF3301C98F1CB0A1:FG=1; cflag=65535%3A1; BAIDU_WISE_UID=wapp_1385534156727_907; locale=zh; bdime=0; NBID=D3EEB391CF4DCDA2ED0B6035E872886D:FG=1; BDUSS=EdwblA4akE5NjV-N3RPZFdjcW52VkJQQXBvbXhRMm5PaEXucy05am1MYkdjY0pTQVFBQUFBJCQAAAAAAAAAAAEAAAXDmn4UdDJubgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbkmlLS5JpSe
這兩個API各有優缺點,具體使用哪個得看具體情況選擇了。
以上這篇獲取IE瀏覽器Cookie信息的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答