MSXML2.XMLHTTP无法发送请求Cookie标头

时间:2020-01-08 12:27:05

标签: excel vba cookies msxml winhttp

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

但是,在使用MSXML2.XMLHTTP时,我无法使用setRequestHeader设置cookie请求标头,因此它将我重定向到每个请求的使用同意页面。我知道使用here所述的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.ServerXMLHTTPWinHTTP.WinHTTPRequest.5.1而不是MSXML2.XMLHTTP来解决此问题,但是,因为该网站使用HTTPS协议而不是HTTP,{ {1}}和ServerXMLHTTTP无法解析其地址。因此它返回了以下错误:

The server name of address could not be resolved."

有人知道如何使用MSXML2.XMLHTTP正确设置Cookie标头,或如何在HTTPS网站上使用WinHTTP吗?

0 个答案:

没有答案