С макроси можете да изпращате данни към HTTP(S) сървър винаги, когато трябва. Имате контрол върху това какви данни се изпращат и как са организирани, което улеснява адаптирането на данните за използване със съществуващи услуги.
Мерки за сигурност:
-
Функцията за HTTP(S) клиентска заявка е деактивирана по подразбиране. Системният администратор трябва изрично да разреши функцията, като зададе
на On (xConfiguration HttpClient Mode: На
). -
Системният администратор може да предотврати използването на HTTP, като зададе
на False (xConfiguration HttpClient AllowHTTP: Невярно
). -
Системният администратор може да посочи списък с HTTP(S) сървъри, към които устройството има право да изпраща данни. (Вижте командите
xCommand HttpClient Allow Hostname
.) -
Броят на едновременните HTTP(S) заявки е ограничен.
Конфигурациите, посочени в тази статия, са достъпни както от уеб интерфейса на устройството, така и в API. Командите са достъпни чрез API. Прочетете статията за разширени настройки за информация как да получите достъп до уеб интерфейса и да използвате API.
Списък на разрешените HTTP(S) сървъри
Системният администратор може да използва тези команди, за да настрои и поддържа списък от до десет разрешени HTTP(S) сървъра (хостове):
-
xCommand HttpClient Allow Hostname Add Expression:
-
xCommand HttpClient позволява изчистване на името на хоста
-
xCommand HttpClient списък с позволени имена на хостове
-
xCommand HttpClient Allow Hostname Remove Id:
Ако списъкът съдържа записи на сървъри, можете да изпращате само HTTP(S) заявки до тези сървъри. Ако обаче списъкът е празен, можете да изпращате заявки към всеки HTTP(S) сървър.
Проверката спрямо списъка с разрешени сървъри се извършва както при използване на незащитен (HTTP), така и при защитен (HTTPS) трансфер на данни.
HTTPS без проверка на сертификата
Когато изпраща заявки през HTTPS, устройството проверява сертификата на HTTPS сървъра по подразбиране. Ако се установи, че сертификатът на HTTPS сървъра не е валиден, ще получите съобщение за грешка. Устройството не изпраща никакви данни към този сървър.
Препоръчваме да използвате HTTPS с валидиране на сертификата. Ако валидирането на сертификата не е възможно, системният администратор може да зададе xConfiguration HttpClient AllowInsecureHTTPS: На
). Това позволява използването на HTTPS без валидиране на сертификата на сървъра.
Изпращане на HTTP(S) заявки
След като функцията за заявка за HTTP(S) клиент е разрешена, можете да използвате следните команди, за да изпращате заявки към HTTP(S) сървър.
е или Post
, Put
, Patch
, Get
, или Delete
.
-
xCommand HttpClient [AllowInsecureHTTPS: ] [Header: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] Url:
Добавянето на полета в заглавката е по желание и можете да добавите до 20 полета.
Параметърът AllowInsecureHTTPS
има ефект само ако системният администратор е разрешил използването на HTTPS, без да валидира сертификата на сървъра. Ако е така, можете да изпращате данни към сървъра, без да валидирате сертификата на сървъра, ако параметърът е зададен на Вярно
. Ако оставите параметъра или го зададете на Невярно
, данните не се изпращат, ако проверката на сертификата е неуспешна.
Параметърът 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 = 'Тип съдържание: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', {'Url': url, „Заглавка“: заглавки }, команда); }
Можете да направите същото в командния ред, като използвате API:
xcommand HttpClient Put Header: "Content-Type: URL адрес на приложение/json: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Пример 2: Публикуване на данни в инструмент за наблюдение чрез HTTP Post
xcommand HttpClient Post Header: "Тип съдържание: application/json" URL: "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 дали имате нужда от помощ за макроси и код на трети страни.