VBA Microsoft.XMLHTTP setRequestHeader 不发送 cookie

标签 vba excel http cookies

我的 VBA 代码发送除 Cookie 信息之外的所有 header 。

Dim oXMLHttpRequest As Object
Set oXMLHttpRequest = CreateObject("Microsoft.XmlHttp")
oXMLHttpRequest.setRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
oXMLHttpRequest.setRequestHeader "Accept-Language", "ko-KR"
oXMLHttpRequest.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
oXMLHttpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oXMLHttpRequest.setRequestHeader "Accept-Encoding", "gzip, deflate"
oXMLHttpRequest.setRequestHeader "Connection", "Keep-Alive"
oXMLHttpRequest.setRequestHeader "DNT", "1"
oXMLHttpRequest.setRequestHeader "Cookie", "xxx=yyy"
oXMLHttpRequest.send[enter image description here][1]

正如您在下面的捕获链接中看到的,Cookie:xxx=yyy 丢失了。 我没有任何线索。请帮我。 谢谢。

Fiddler 捕获:

Fiddler capture

最佳答案

有一个 rumour在 Google 上,您必须在此处使用 WinHTTP 对象而不是 MSXML2。例如:

Option Explicit

    Sub Test()

        Dim objRequest As Object
        Dim strResponse As String
        Dim blnAsync  As Boolean

        Set objRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
        blnAsync = True

        With objRequest
            .Open "POST", "http://www.comparity.net/perl/form.pl", blnAsync
            .setRequestHeader "Cookie", "timtam=penguin"
            .send
            .WaitForResponse
            strResponse = .responseText
            Debug.Print strResponse
            Debug.Print .Status
        End With

    End Sub

关于VBA Microsoft.XMLHTTP setRequestHeader 不发送 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306825/

相关文章:

excel - VBA 字典引用

http - 从 HTTP 过滤器访问 URL 处理程序模式

.net - Excel VBA 网页抓取 - 自动化错误/未指定错误

Excel/VBA - 使用动态范围的索引匹配函数

vba - 在 Excel 中使用本地范围而不是全局范围的令人信服的论据

c++ - 在 C++ 中解析 HTTP header

java - Angular 发布请求中的重定向问题 - 302 暂时移动

excel - VBA 使用相同的宏按钮展开/折叠行

java - 如何使用java读取excel文件并将其转换为制表符分隔文件

excel - 通过控件的类触发输入字段行为