За допомогою макросів можна надсилати дані на сервер HTTP(S) у будь-який час. Ви маєте контроль над тим, які дані надсилаються та як вони організовані, що дозволяє легко адаптувати дані для використання з наявними службами.

Заходи безпеки:

  • Функція запиту клієнта HTTP(S) за замовчуванням вимкнена. Системний адміністратор має явно ввімкнути функцію, установивши параметр HttpClient > Режим на Увімкнуто ( Режим HttpClient xConfiguration: Увімкнено ).

  • Системний адміністратор може запобігти використанню HTTP, встановивши параметр HttpClient > ДозволитиHTTP в значення False ( xConfiguration HttpClient AllowHTTP: Хибно ).

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

  • Кількість одночасних запитів HTTP(S) обмежена.

Конфігурації, зазначені в цій статті, доступні як з вебінтерфейсу пристрою, так і в API. Команди доступні через API. Прочитайте статтю "Додаткові параметри", щоб отримати інформацію про те, як отримати доступ до веб-інтерфейсу та використовувати API.

Список дозволених HTTP(S) серверів

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

  • xCommand HttpClient Дозволити Додавання Виразу Імені Хоста:

  • Дозволити ім’я хоста HttpClient xCommand очистити

  • Список дозволених імен хоста xCommand HttpClient

  • xCommand HttpClient Дозволити Ім’я Хоста Видалити Ідентифікатор:

Якщо список містить записи серверів, ви можете надсилати запити HTTP( S) лише на ці сервери. Однак, якщо список пустий, можна надсилати запити на будь-який сервер HTTP(S).

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

HTTPS без перевірки сертифіката

При відправці запитів по HTTPS пристрій за замовчуванням перевіряє сертифікат HTTPS-сервера. Якщо сертифікат сервера HTTPS не встановлено дійсним, з'явиться повідомлення про помилку. Пристрій не надсилає жодних даних на цей сервер.

Ми рекомендуємо використовувати HTTPS з перевіркою сертифіката. Якщо перевірка сертифіката неможлива, системний адміністратор може встановити параметр HttpClient > ДозволитиInsecureHTTPS на значення Увімкнено ( xConfiguration HttpClient AllowInsecureHTTPS: Увімкнено ). Це дозволяє використовувати HTTPS без перевірки сертифіката сервера.

Надсилання запитів HTTP(S)

Після ввімкнення функції запиту клієнта HTTP(S) можна використовувати наведені далі команди, щоб надсилати запити на сервер HTTP(S). – це Post , Put , Patch , Get або Delete .

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Заголовок: ] [ResponseSizeLimit: ] [BodyResult: ] [Timeout: ] Url:

Додавання полів заголовків необов’язкове, тому можна додати до 20 полів.

Параметр AllowInsecureHTTPS діє, лише якщо системний адміністратор дозволив використовувати HTTPS без перевірки сертифіката сервера. Якщо так, можна надіслати дані на сервер, не перевіряючи сертифікат сервера, якщо для параметра задано значення True . Якщо параметр пропущено або задано для нього значення Хибно , дані не надсилаються, якщо помилка перевірки сертифіката.

Параметр ResposenSizeLimit — це максимальний розмір корисного навантаження (у байтах), який пристрій приймає як відповідь із сервера. Якщо корисне навантаження у відповідь більше цього максимального розміру, команда повертає помилку стану. Повідомлення про помилку говорить про те, що максимальний розмір файлу перевищено. Однак це не впливає на сторону сервера; сервер отримав і обробив запит належним чином.

Використовуйте параметр ResultBody , щоб вирішити, як відформатувати тіло відповіді HTTP від сервера в результаті команди. У вас є три варіанти:

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

  • Base64 : Base64 закодує тіло перед включенням його в результат.

  • Звичайний текст : Включіть тіло до результату як звичайний текст. Якщо відповідь містить листи, які не можна надрукувати, команда повертає помилку стану з повідомленням про те, що дані, які не можна надрукувати, зустрічалися.

Використовуйте параметр Тайм-аут , щоб установити період тайм-ауту (у секундах). Якщо запит не виконано протягом цього періоду, API повертає помилку.

Введіть корисне навантаження (дані) відразу після того, як ви оформили команду. Все, що ви вводите, включаючи розриви рядків, є частиною корисного навантаження. Коли це буде зроблено, закінчіть розривом рядка ("\n") і окремим рядком, що містить лише крапку, за якою слідує розрив рядка (".\n"). Тепер команда виконана, і дані відправляються на сервер.

Приклади

Тіло повідомлення - JSON в обох цих прикладах. Це може бути будь-який формат, в залежності від очікуваного формату сервісу, який приймає повідомлення.

Приклад 1. Управління пристроєм IoT за допомогою HTTP Post

Ось функція макросів, яка включає світло, яке з'єднане з мостом Філіпса Хюе:

 function hue_command(дані) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Тип контенту: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, "Заголовок": заголовки }, команда); } 

Те ж саме можна зробити і в командному рядку за допомогою API:

 xcommand HttpClient Put Заголовок: "Тип контенту: URL програми/json: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true}. 

Приклад 2. Розміщення даних в інструменті моніторингу за допомогою HTTP Post

 xcommand HttpClient Post Заголовок: "Тип контенту: URL програми/json: "https://mymonitoringserver.com/service/devicemonitoring" {"Повідомлення":"Користувач повідомив про проблему з цією системою","systemName":"BoardRoom 4 поверх","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Додаткова інформація

Дізнайтеся більше про те, як використовувати http-клієнтські запити, дізнайтеся в посібнику з налаштування . Виберіть останню версію.

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