WinHTTP Request GET не получает ответ в Excel VBA
У меня есть макрос, который вызывает вызов GET на портале. Ниже приведена структура URL:
https: // {P_URL_PORT} / IBM / консоль / текст статус = истина и типа = кластер и имя ={P_CELL} и время = {TSTAMP}?
Вот мой макрос.
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
WinHttpReq.Open "GET", strURL, False, userNTID, userPassword
WinHttpReq.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
WinHttpReq.Send
result1 = WinHttpReq.responseText
Но я не получаю ожидаемого ответа. Он отображает ответ на экране входа в систему. Я попытался добавить метод POST, где он будет отправлять URL-адрес входа, имя пользователя и пароль. Но все же вызов GET не получает фактический ответ.
1 ответ
Функция открытия для WinHttpRequest не принимает имя пользователя и пароль в качестве параметров. Если вы можете автоматически войти на сайт в Internet Explorer, вы можете использовать эти настройки с помощью SetAutoLogonPolicy()
Предостережение: автоматический вход в систему подразумевает не куки, а настройки прокси. Иногда вы можете автоматически войти на сайт, потому что браузер запомнил ваш последний вход в систему.
Чтобы быть уверенным:- Закройте все окна браузера. Откройте личное окно. Если вы автоматически авторизуетесь сейчас, это означает, что он установлен в Свойствах обозревателя и SetAutoLogonPolicy() должен работать.
Dim URL As String
URL = "" 'provide URL
Dim HDoc As HTMLDocument
Dim whr As New WinHttpRequest
whr.Open "GET", URL, False
whr.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
whr.SetAutoLogonPolicy AutoLogonPolicy_Always
whr.Send
В случае, если вам нужно войти, вы вводите учетные данные, затем используйте SetCredentials(). Хороший пример такого запроса можно найти здесь