首页 > 解决方案 > MSXML2.XMLHTTP 发送请求 cookie 标头失败

问题描述

我正在尝试使用 Excel VBA 在此网站中创建一些自动网络搜索,但为了使用它,您需要同意它的条款和条件。然后,该网站将您的协议存储在 cookie“agree=True”中。

但是,在使用MSXML2.XMLHTTP时,我无法使用 设置 cookie 请求标头setRequestHeader,因此它会将我重定向到每个请求的使用同意页面。我知道使用此处所述的 MSXML2 存在错误,但我不知道如何使用 Excel 链接中提供的解决方法。(调用setRequestHeader两次将不起作用)。

这是我正在使用的代码:

Set objHTTP = CreateObject("MSXML2.XMLHTTP.6.0")

Dim CAGE As String

CAGE = "3K723" 'Could be any CAGE Code, using this one as example

url = "https://cage.dla.mil/Search/Results?q=" & CAGE & "&page=1"

objHTTP.Open "GET", url, False
objHTTP.SetRequestHeader "Cookie", "agree=True"
objHTTP.send

Cells(1, 1).Value = objHTTP.ResponseText

我知道这个问题可以简单地通过使用MSXML2.ServerXMLHTTPorWinHTTP.WinHTTPRequest.5.1来解决MSXML2.XMLHTTP但是由于网站使用的是 HTTPS 协议而不是 HTTP,ServerXMLHTTTP因此WinHTTP无法解析它的地址。所以它返回我以下错误:

"无法解析地址的服务器名称。"

有谁知道如何使用 MSXML2.XMLHTTP 正确设置 Cookie 标头,或者如何将 WinHTTP 与 HTTPS 网站一起使用?

标签: excelvbacookiesmsxmlwinhttp

解决方案


推荐阅读