• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

[VB6] Работа с XMLHttpRequest

лис.хвост

VIP
Разработчик
Сообщения
635
Симпатии
1,028
#1
Авторизация
VB.NET:
'-----------------------------------------------------------------------------------------------------------------------------------------------
'получаем 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
 
Последнее редактирование модератором:

лис.хвост

VIP
Разработчик
Сообщения
635
Симпатии
1,028
#2
Дает возможность делать HTTP запросы к серверу
VB.NET:
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:
xmlHTTP.Open "POST", "https://test.test.ru/server/login", False
Send(data) - отправка запроса, где data - данные для отправки
VB.NET:
auth="Login&login=Admin&password=123456"
xmlHTTP.Send(auth)
setRequestHeader(name, value) - установка заголовка запроса. В случае если заголовок уже установлен, заменяет. Name - название заголовка (например, 'Content-Type'), value - значение.
VB.NET:
xmlHTTP.setRequestHeader "Content-Type", "application/octet-stream"
getAllResponseHeaders() - возвращает ответ сервера со всеми заголовками
VB.NET:
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) - возникает при прерывании запроса пользователем
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,622
Симпатии
5,502
#3
tisha, а не пробовали отправлять последовательно 2 запроса (как с контролом) WebBrowser?
т.е. к примеру 1-й запрос приводит к тому, что открывается другая страница,
а 2-й запрос направляется уже к этой другой странице.
 

лис.хвост

VIP
Разработчик
Сообщения
635
Симпатии
1,028
#4
Dragokas, у меня не большой опыт работы с http-запросами. Была задача править данные в разделе url которого необходимо было вычислить
 
Сверху Снизу