С помощью макросов вы можете отправлять данные на сервер HTTPs в любое время. Вы можете управлять отправленными данными и их организацией, что упрощает настройку данных для использования с существующими сервисами.

Меры обеспечения безопасности:

  • Функция клиентских запросов HTTP(S) по умолчанию отключена. Системный администратор должен явным образом включить эту функцию, установив для HttpClient > Mode значение «Вкл .» ( xConfiguration HttpClient Mode: Вкл .).

  • Системный администратор может предотвратить использование HTTP, установив для HttpClient > AllowHTTP значение False ( xConfiguration HttpClient AllowHTTP: False ).

  • Системный администратор может задать список серверов HTTP(S), на которые устройству разрешается отправлять данные. (см. описание команд xCommand HttpClient Allow Hostname).

  • Количество одновременных запросов HTTP(S) ограничено.

Конфигурации, упомянутые в этой статье, доступны как в веб-интерфейсе устройства, так и в API. Команды доступны через API. Информацию о доступе к веб-интерфейсу и использованию API можно получить в статье Расширенные настройки.

Список разрешенных серверов HTTP(S)

Системный администратор может использовать эти команды для настройки и актуализации списка, содержащего до десяти разрешенных серверов HTTP(S) (хостов):

  • xCommand HttpClient Allow Hostname Add Expression: <регулярное выражение для сопоставления имени хоста или IP-адреса сервера HTTP(S)>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

  • xCommand HttpClient Allow Hostname Remove Id: <идентификатор записи в списке>

Если список содержит записи о серверах, на эти серверы можно отправлять только запросы HTTPs. Однако если список пуст, можно отправлять запросы на любой сервер HTTP.

Проверка по списку разрешенных серверов выполняется как во время небезопасной передачи данных (по протоколу HTTP), так и при защищенной передаче данных (по протоколу HTTPS).

HTTPS без подтверждения сертификата

При отправке запросов по протоколу HTTPS устройство по умолчанию проверяет сертификат сервера HTTPS. Если сертификат сервера HTTPS недействителен, отображается соответствующее сообщение об ошибке. В этом случае устройство не отправляет данные на сервер.

Рекомендуется использовать HTTPS с проверкой сертификата. Если проверка сертификата невозможна, системный администратор может задать для HttpClient > AllowInsecureHTTPS значение «Вкл .» ( xConfiguration HttpClient AllowInsecureHTTPS: Вкл .). Это позволит использовать протокол HTTPS без проверки сертификата сервера.

Отправка запросов HTTP

После включения функции клиентских запросов HTTP(S) можно отправлять запросы на HTTP(S)-сервер, используя следующие команды: <method> — это Post, Put, Patch, Get или Delete.

  • xCommand HttpClient <Метод> [AllowInsecureHTTPS: <True/False>] [Заголовок: текст <заголовок>] [ResponseSizeLimit: <Max Размер ответа>] [Результат: <None/PlainText/Base64>] [Тайм-аут: < Период ожидания>] Url-адрес: <URL для отправки запроса на>

Добавление полей заголовка не является обязательным. Можно добавить до 20 полей.

Параметр AllowInsecureHTTPS (РазрешитьНебезопасныйHTTPS) применяется только в том случае, если системный администратор разрешил использование протокола HTTPS без проверки сертификата сервера. В этом случае данные можно отправлять на сервер без проверки сертификата сервера, если параметру присвоено значение True (Истина). Если пропустить этот параметр или задать для него значение False (Ложь), в случае если проверка сертификата не пройдена, данные не отправляются.

Параметр ResposenSizeLimit — максимальный размер полезной нагрузки (в байтах), принимаемый устройством в качестве ответа от сервера Если объем полезных данных ответа превышает это значение, команда возвращает ошибку состояния. В сообщении об ошибке говорится о превышении максимального размера файла. Однако это не учитывается на стороне сервера, т. к. сервер получил запрос и обработал его надлежащим образом.

С помощью параметра ResultBody можно выбрать способ форматирования тела HTTP-ответа, полученного с сервера в результате выполнения команды. Доступны три варианта:

  • Нет: не включать тело HTTP-ответа в результат выполнения команды.

  • Base64: перед включением в результат кодировать тело ответа кодом Base64.

  • Открытый текст: включить тело ответа в результат как обычный текст. Если ответ содержит непечатаемые символы, то команда возвращает ошибку состояния с сообщением об обнаружении непечатаемых данных.

Для задания времени ожидания используйте параметр Задержка (в секундах). Если запрос не будет выполнен за этот период, API возвратит ошибку.

После ввода команды следует сразу ввести полезную нагрузку (данные). Все, что вы вводите, включая разрывы строк, является частью полезной нагрузки. После ввода полезной нагрузки следует ввести разрыв строки ("\n") и отдельную строку, в которой содержится лишь точка, за которой следует разрыв строки (".\n"). После этого команда будет выполнена, а данные будут отправлены на сервер.

Примеры

В обоих этих примерах текст сообщения указан в формате JSON. Однако он может быть в любом формате в зависимости от ожидаемого формата службы, которая получает сообщения.

Пример 1: управление устройством IoT с помощью HTTP POST

Ниже приведена функция макроса, которая включает лампочку, подключенную к маршрутизатору Philips Hue Bridge:

 функция hue_command(данные) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Тип содержимого: приложение/доб;; var command = '{"on":true};6pi.command('HttpClient Put', { 'Url:URL:URL:url,'заголовок': заголовки }, command); } 

Это же можно выполнить и в интерфейсе командной строки с помощью API:

 xcommand HttpClient Put Header: URL-адрес "Тип содержимого: приложение/буда" : "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

Пример 2: отправка данных в средство контроля с помощью HTTP POST

 xcommand HttpClient Post: «Тип содержимого: приложение/буда» URL: «https://mymonitoringserver.com/service/devicemonitoring» {"Сообщение":"Пользователь сообщил о проблеме с этой системой","systemName":"Комната заседаний 4-го этажа","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Двойной"} . 

Дополнительные источники информации

Дополнительные сведения об использовании клиентских запросов HTTP см. в Руководстве по настройке. Выбирайте последнюю версию.

Служба поддержки Cisco (TAC) не оказывает помощь в отладке стороннего кода, включая макросы. Пожалуйста, установите флажок https://roomos.cisco.com если вам нужна помощь с макросами и кодом стороннего разработчика.