[VB6] Работа с XMLHttpRequest

Тема в разделе "Банк полезных кодов", создана пользователем лис.хвост, 3 авг 2015.

  1. лис.хвост
    Оффлайн

    лис.хвост VIP Разработчик

    Сообщения:
    630
    Симпатии:
    983
    Авторизация
    Код (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
     
     
    Последнее редактирование модератором: 3 авг 2015
  2. лис.хвост
    Оффлайн

    лис.хвост VIP Разработчик

    Сообщения:
    630
    Симпатии:
    983
    Дает возможность делать 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 и Kиpилл нравится это.
  3. Dragokas
    Онлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.473
    Симпатии:
    4.303
    tisha, а не пробовали отправлять последовательно 2 запроса (как с контролом) WebBrowser?
    т.е. к примеру 1-й запрос приводит к тому, что открывается другая страница,
    а 2-й запрос направляется уже к этой другой странице.
     
  4. лис.хвост
    Оффлайн

    лис.хвост VIP Разработчик

    Сообщения:
    630
    Симпатии:
    983
    Dragokas, у меня не большой опыт работы с http-запросами. Была задача править данные в разделе url которого необходимо было вычислить
     

Поделиться этой страницей