[VB6] Работа с XMLHttpRequest

лис.хвост

VIP
Разработчик
Сообщения
623
Реакции
586
Работа с XMLHttpRequest. Авторизация
VB.NET / VBA:
'-----------------------------------------------------------------------------------------------------------------------------------------------
'получаем Cookie
Dim xmlHTTP, adr, auth, rez, xpl, text, z, LLT, SID
'-----------------------------------------------------------------------------------------------------------------------------------------------
'Set xpl = Report.GetXPL()
Set xmlHTTP = CreateObject("Microsoft.XMLHTTP")
adr="https://test.test.ru/server/login"
auth="Login&login=Admin&password=123456"
Set fso = CreateObject("Scripting.FileSystemObject")
Set Log_file = fso_OpenTextFile("c:\disstr\logs\test.txt", 2, True)

xmlHTTP.Open "POST", adr, False
xmlHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'application/octet-stream     setRequestHeader
xmlHTTP.setRequestHeader "Content-Type", "application/octet-stream"
xmlHTTP.setRequestHeader "X-Requested-With", "XMLHttpRequest"
xmlHTTP.Send(auth)
rez = xmlHTTP.getAllResponseHeaders
Log_file.write rez
 
Последнее редактирование модератором:
Дает возможность делать HTTP запросы к серверу
VB.NET / VBA:
Set xmlHTTP = CreateObject("Microsoft.XMLHTTP")

Методы:

Open(method, URL, type, userName, password) , где method - метод через который будет происходить отправка HTTP запроса (например POST, GET). URL - адрес интернет ресурса, которому отправляется запрос (можно указать как название домена, так и ip-адрес). Type - тип режима, может принимать значения true и false. True - не ждет ответа сервера, false - сценарий остановит работу до получения ответа сервера. Username, password - используется при необходимости авторизации.
VB.NET / VBA:
xmlHTTP.Open "POST", "https://test.test.ru/server/login", False

Send(data) - отправка запроса, где data - данные для отправки
VB.NET / VBA:
auth="Login&login=Admin&password=123456"
xmlHTTP.Send(auth)

setRequestHeader(name, value) - установка заголовка запроса. В случае если заголовок уже установлен, заменяет. Name - название заголовка (например, 'Content-Type'), value - значение.
VB.NET / VBA:
xmlHTTP.setRequestHeader "Content-Type", "application/octet-stream"

getAllResponseHeaders() - возвращает ответ сервера со всеми заголовками
VB.NET / VBA:
otv = xmlHTTP.getAllResponseHeaders

getResponseHeader(headerName) - возвращает значение заголовка headerName ответа сервера.

Abort() - отменяет текущий запрос, удаляет все установленные заголовки, текст ответа сервера при этом становится NULL

Свойства:

responseText - хранит ответ в текстовом формате
responseXML - хранит ответ в виде XML
responseBody - используется при закачке бинарного файла, хранит ответ в виде массива байтов
Status - код ответа сервера на запрос (например, 200 - ОК, 404 - не найдено и т.п.)
StatusText - расшифровка свойства Status

Ошибки, вызываемые XMLHTTP:

SECURITY_ERR(код 18) - возникает при попытке совершить запрос, запрещённый настройками безопасности в браузере
NETWORK_ERR (код 101) - возникает при ошибки сети
ABORT_ERR (код 102) - возникает при прерывании запроса пользователем
 
tisha, а не пробовали отправлять последовательно 2 запроса (как с контролом) WebBrowser?
т.е. к примеру 1-й запрос приводит к тому, что открывается другая страница,
а 2-й запрос направляется уже к этой другой странице.
 
Назад
Сверху Снизу