MSXML2.XMLHTTP не может отправить запрос cook ie header - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь создать несколько автоматических веб-поисков на этом веб-сайте с использованием Excel VBA, но для его использования необходимо согласиться с его условиями. Затем веб-сайт сохраняет ваше соглашение в файле cook ie "accept = True".

Но при использовании MSXML2.XMLHTTP я не могу установить заголовок запроса cook ie, используя 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.ServerXMLHTTP или WinHTTP.WinHTTPRequest.5.1 вместо MSXML2.XMLHTTP, , но , поскольку веб-сайт использует протокол HTTPS, а не HTTP, ServerXMLHTTTP и WinHTTP не могут определить его адрес. Поэтому он возвращает мне следующую ошибку:

" Имя сервера не может быть разрешено."

Кто-нибудь знает, как я могу правильно установить заголовок Cook ie, используя MSXML2.XMLHTTP, или как использовать WinHTTP с веб-сайтом HTTPS?

...