С помощью макросов вы можете отправлять данные на сервер HTTP (S) в любое время. Вы сами контролируете, какие данные отправляются и как они организованы, что упрощает адаптацию данных для использования в существующих сервисах.
Меры безопасности:
-
По умолчанию функция запроса клиента HTTP (S) отключена. Системный администратор должен явно включить эту функцию, выбрав для параметра значение On (
xConfiguration HttpClient Mode: On). -
Системный администратор может предотвратить использование HTTP, установив для параметра : False) . -
Системный администратор может указать список серверов HTTP (S), на которые устройству разрешено отправлять данные.
(См. команду HttpClient «Разрешить команды имени хоста»). -
Количество одновременных запросов HTTP (S) ограничено.
Конфигурации, указанные в этой статье, доступны как в веб-интерфейсе устройства, так и в API. Команды доступны через API. Прочтите статью « Дополнительные настройки», чтобы узнать, как получить доступ к веб-интерфейсу и использовать API.
Список разрешенных серверов HTTP (S)
Системный администратор может использовать следующие команды для настройки и ведения списка, включающего до десяти разрешенных серверов (хостов) HTTP (S):
-
Команда HttpClient «Разрешить имя хоста и добавить выражение»:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
Команда HttpClient «Разрешить очистку имени хоста» -
Команда HttpClient «Разрешить список имен хостов» -
Команда HttpClient «Разрешить удаление имени хоста»:<id of an entry in the list>
Если список содержит записи сервера, вы можете отправлять запросы HTTP (S) только на эти серверы. Однако если список пуст, вы можете отправлять запросы на любой сервер HTTP (S).
Проверка списка разрешенных серверов выполняется как при небезопасной (HTTP), так и при безопасной (HTTPS) передаче данных.
HTTPS без проверки сертификата
При отправке запросов по протоколу HTTPS устройство по умолчанию проверяет сертификат HTTPS-сервера. Если сертификат HTTPS-сервера окажется недействительным, вы получите сообщение об ошибке. Устройство не отправляет данные на этот сервер.
Мы рекомендуем использовать HTTPS с проверкой сертификата. Если проверка сертификата невозможна, системный администратор может задать для параметра : Вкл.). Это позволяет использовать HTTPS без проверки сертификата сервера.
Отправка запросов HTTP (S)
После включения функции клиентских запросов HTTP (S) вы можете использовать следующие команды для отправки запросов на сервер HTTP (S).
<method>Можно
опубликовать
,
отправить
,
исправить
,
получить или
удалить
.
-
Команда HTTPClient [Разрешить небезопасный HTTPS:] [Заголовок:] [Ограничение размера ответа:] [Текст результата:] [Время ожидания:] URL-адрес:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Добавлять поля заголовка необязательно, можно добавить до 20 полей.
Параметр
AllowInsecureHTTPS действует только в том случае, если системный администратор разрешил использование HTTPS без проверки сертификата сервера. В таком случае вы можете отправлять данные на сервер без проверки сертификата сервера, если для параметра установлено значение True.
Если вы пропустите этот параметр или установите для него значение
False
, данные не будут отправлены в случае неудачной проверки сертификата.
Параметр
RespoSensizeLimit — это максимальный размер полезной нагрузки (в байтах), который устройство принимает в качестве ответа от сервера. Если полезная нагрузка ответа превышает этот максимальный размер, команда возвращает сообщение об ошибке состояния. В сообщении об ошибке указано, что максимальный размер файла превышен. Однако на стороне сервера это не влияет; сервер правильно получил и обработал запрос.
Используйте
параметр
ResultBody, чтобы решить, как форматировать текст HTTP-ответа сервера в результате выполнения команды. У вас есть три варианта:
-
Нет: не включайте текст HTTP-ответа в результат команды. -
Base64: Base64 закодирует тело перед включением его в результат. -
PlainText: включите текст в результат в виде обычного текста. Если ответ содержит непечатаемые буквы, команда возвращает сообщение об ошибке состояния с сообщением о том, что обнаружены данные, не подлежащие печати.
Используйте
параметр
Timeout, чтобы установить период ожидания (в секундах). Если запрос не будет выполнен в течение этого периода, API возвращает ошибку.
Введите полезную нагрузку (данные) сразу после ввода команды. Все, что вы вводите, включая разрывы строк, является частью полезной нагрузки. По завершении введите разрыв строки («\n») и отдельную строку, содержащую только точку, за которой следует разрыв строки (»). \n»). Теперь команда выполнена, а данные отправляются на сервер.
Примеры
В обоих примерах текст сообщения представлен в формате JSON. Формат может быть любым, в зависимости от ожидаемого формата службы, получающей сообщения.
Пример 1. Управление устройствами Интернета вещей с помощью HTTP Post
Вот макрофункция, включающая свет, подключенный к мосту Philips Hue Bridge:
function hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, command); }
То же самое можно сделать в командной строке с помощью API:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Пример 2. Отправка данных в инструмент мониторинга с помощью HTTP Post
xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"A user reported an issue with this system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Дополнительная информация
Дополнительные сведения об использовании клиентских HTTP-запросов см. в руководстве по настройке . Выберите последнюю версию.
Служба поддержки Cisco (TAC) не поддерживает отладку стороннего кода, включая макросы. Если вам нужна помощь по макросам и стороннему коду, посетите сайт https://roomos.cisco.com.