powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / web запросы через vba
7 сообщений из 7, страница 1 из 1
web запросы через vba
    #38090796
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, комрады!
Обращаюсь к вам как относительный новичок в vba. Нет, я умею редактировать сделанные макросы, изменять готовый код и писать какие-то примитивы, но я не держу в памяти названия операторов и не знаю многих вещей.
Постановка задачи: есть некий web-ресурс, есть API для работы с этим ресурсом. Есть мануал, описывающий команды этого API. Вся сущность в итоге позволит мне дергать билинговые данные из своего личного кабинета.
Самый главный мой вопрос - синтаксис запросов. Как средствами VBA отправлять POST и GET запросы с нужными параметрами и как выгружать итоговые данные в таблицу.
Мне бы пример кода-какой-нибудь или, для начала, разжевать примитивную задачу - авторизоваться на ресурсе. Вот выдержка из документации:
авторВ первую очередь, для того чтобы иметь возможность использовать методы API, необходимо осуществить POST или GET запрос для авторизации на адрес: http://lalala/login.php
Название параметров:login и password
Понимаю, что выгляжу глупо и, возможно, вызову ваш гнев, но, тем не менее, расчитываю на помощь.
Заранее спасибо!
_____________________
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как администрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
web запросы через vba
    #38090817
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Frost_Imp,

вы когда говорите "web запросы", "web-ресурс" - имеете в виду "web service" и запросы к нему ?

если - да, то вот тут - Получение данных через SOAP в Access - 2-а варианта работы с веб сервисом,
Frost_ImpМне бы пример кода-какой-нибудь или, для начала, разжевать примитивную задачу - авторизоваться на ресурсе.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  '  Запрос к веб-сервису и сохранение результата в файл
  Set xmlhtp = New MSXML2.XMLHTTP
  Set XMLDoc = New DOMDocument
  With xmlhtp
    ' Запрос
    .Open "POST", sURL, False, "login", "password"
    .setRequestHeader "Host", "....."
    .setRequestHeader "Content-Type", "text/xml;charset=UTF-8"
    .setRequestHeader "SOAPAction", "url & web-metod"
    .send sEnv
    ' Сохранение
    XMLDoc.LoadXML .responseText
'    XMLDoc.Save FileName 'CurrentProject.path & "\WebQueryResult.xml"
    XMLDoc.Save CurrentProject.path & "\WebQueryResult.xml"
  End With
...
Рейтинг: 0 / 0
web запросы через vba
    #38090925
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112 , спасибо за наводку!
Позвольте еще вопрос - как отправлять запросы через прокси? Напрямую нельзя
...
Рейтинг: 0 / 0
web запросы через vba
    #38090931
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ServerXMLHTTP юзайте
...
Рейтинг: 0 / 0
web запросы через vba
    #38090937
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Frost_Imp qwerty112 , спасибо за наводку!
Позвольте еще вопрос - как отправлять запросы через прокси? Напрямую нельзя
гмм,
нуу если честно - не знаю, не было у меня такой необходимости,
но вот "загуглив" по быстрому, вроде бы нашел то, что нужно,
посмотрите - 128536
...
Рейтинг: 0 / 0
web запросы через vba
    #38090942
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112посмотрите - 128536
конкретно, это я имел в виду
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
strAuthor = strProxyUser & ":" & strProxyPass
strAuthor = base64Encode(strAuthor)
strAuthor = "Basic " & strAuthor

xmlHttp.OPEN "POST", "http://cool_web_service/sql", False,strSQLLogin,strSQLPassw
xmlHttp.setRequestHeader "Content-type", "application/xml"
xmlHttp.setRequestHeader "Proxy-Authorization", strAuthor
...
Рейтинг: 0 / 0
web запросы через vba
    #38091474
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112, а не подскажете, почему может не работать код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function GetHTTPResponse(ByVal sURL As String) As String
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "POST", sURL, False, "логин_на_сайт", "пароль_на_сайт"
        ' настройки прокси
         .setProxy 2, "ip_прокси:порт_прокси"
         .setProxyCredentials "логин_прокси", "пароль_прокси"
        .send
        sHTMLBody = .responseBody
'       Charset = UTF - 8
        Debug.Print sHTMLBody
    End With
    For i = 0 To UBound(sHTMLBody)
        GetHTTPResponse = GetHTTPResponse & ChrW(AscW(Chr(AscB(MidB(sHTMLBody, i + 1, 1)))))
    Next
    Pi.Hide
    Set oXMLHTTP = Nothing
End Function


В sURL передается адрес сайта, в sHTMLBody пишется "Доступ запрещен", хотя учетные данные верные
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / web запросы через vba
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]