Какой код VBA требуется для выполнения HTTP POST из электронной таблицы Excel?
135
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send("")
Кроме того, для большего контроля над HTTP-запросом вы можете использовать WinHttp.WinHttpRequest.5.1
вместо MSXML2.ServerXMLHTTP
.
objHTTP.responseText
.ByRef
или нет. Вот почему их использование с объектными переменными типа, который не имеет члена по умолчанию, вызывает ошибки во время выполнения; и используя их на объекте, который имеет элемент по умолчанию, передает значение этого элемента по умолчанию вместо фактического объекта.Если вам это нужно для работы на Mac и Windows, вы можете использовать QueryTables:
Ноты:
Для получения более подробной информации, вы можете увидеть мое полное резюме о « использовании веб-служб из Excel ».
источник
В дополнение к ответу Билла Ящера :
Большинство бэкэндов анализируют необработанные почтовые данные. Например, в PHP у вас будет массив,
$_POST
в котором будут храниться отдельные переменные в данных поста. В этом случае вы должны использовать дополнительный заголовок"Content-type: application/x-www-form-urlencoded"
:В противном случае вы должны прочитать необработанные данные поста в переменной
"$HTTP_RAW_POST_DATA"
.источник
Вы можете использовать
ServerXMLHTTP
в проекте VBA, добавив ссылку наMSXML
.(из ссылок на MSXML в проектах VBA )
Документация ServerXMLHTTP MSDN содержит полную информацию обо всех свойствах и методах ServerXMLHTTP.
Короче говоря, это работает в основном так:
источник
Чтобы завершить ответ других пользователей:
Для этого я создал объект «WinHttp.WinHttpRequest.5.1» .
Отправить запрос с некоторыми данными из Excel, используя VBA:
Отправьте запрос на получение с аутентификацией токена из Excel, используя VBA:
источник
TCRequestItem Object
, вы можете прочитать его как:TCRequestItem.ResponseText
после выполненияTCRequestItem.send
Я сделал это до использования библиотеки MSXML, а затем с помощью объекта XMLHttpRequest, см. Здесь .
источник