GetCookies – Get local cookies for a given URL

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' Get locally-stored cookies for a specified URL'' If CookieName is omitted, returns all the cookies as' as semicolon-delimited list of NAME=VALUE pairsFunction GetCookies(ByVal URL As String, Optional CookieName As String) As _    String    Dim buffer As String    Dim length As Long        ' prepare the receiving buffer    length = 10240    buffer = Space$(length)    ' query WinInet for cookies from this URL    ' a zero value means failure    If InternetGetCookie(URL, vbNullString, buffer, _        length) = 0 Then Exit Function        ' LENGHT has received the size of returned data    buffer = Left$(buffer, length)        If Len(CookieName) = 0 Then        ' the entire cookie string was requested        GetCookies = buffer    Else        ' extract one single cookie        Dim cookies() As String        Dim i As Long, tmp As String                ' get the individual cookies        cookies = Split(buffer, ";")                ' search for the right one        For i = 0 To UBound(cookies)            ' trim the leading space, if any            tmp = LTrim$(cookies(i))            If InStr(1, tmp, CookieName & "=", vbTextCompare) = 1 Then                ' we've got it                GetCookies = Mid$(tmp, Len(CookieName) + 2)                Exit For            End If        Next    End If    End Function

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: