【问题标题】:Retrieving multiple cookies in vbscript在 vbscript 中检索多个 cookie
【发布时间】:2011-09-20 04:36:38
【问题描述】:

我认为这可能是一个简单的问题,但我有点卡住了。

我正在使用这个 vbscript 函数打开一个网页并获取 cookie。

Function Fetch(URL)

   Set WshShell = CreateObject("WScript.Shell")
   Set http = CreateObject("Microsoft.XmlHttp")
    http.open "", URL, FALSE
    Fetch = http.getResponseHeader("Set-Cookie")
   set WshShell = nothing
   set http = nothing  

End Function

它可以很好地返回一个 cookie,但我遇到了一个创建两个 cookie 的页面,我需要它们。当我使用它时,它只返回第一个 cookie。如何退回这两个 cookie?

非常感谢

【问题讨论】:

    标签: http cookies vbscript header asp-classic


    【解决方案1】:

    应该自己写:

    Option Explicit
    
    Function Fetch(ByVal URL, ByVal sHdrName)
        Dim http
        Set http = CreateObject("Microsoft.XmlHttp")
            http.open "GET", URL, False
            http.Send
            Fetch = getHeaders(http, sHdrName)
        Set http = Nothing  
    End Function
    
    Function getHeaders(oReq, sHdrName)
        Dim tHdrName : tHdrName = Trim(sHdrName) & ": "
        Dim tArr : tArr = Split(oReq.getAllResponseHeaders(), vbCrLf)
        tArr = Filter(tArr, tHdrName, True, vbTextCompare)
        Dim i
        For i = 0 To UBound(tArr)
            tArr(i) = Mid(tArr(i), Len(tHdrName) + 1, Len(tArr(i)))
        Next
        getHeaders = tArr 'Returns Array
    End Function
    
    'Iterate & Fetch
    Dim iHdrVal
    For Each iHdrVal In Fetch("http://a.url", "Set-Cookie")
        WScript.Echo iHdrVal
    Next
    

    【讨论】:

    • 酷。谢谢你做这项工作。我在想如果没有更简单的方法,我必须自己做这样的事情(并且不喜欢前景)。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多