С макроси можете да изпращате данни към HTTPs сървър, когато имате нужда. Имате контрол върху това какви данни се изпращат и как са организирани, което улеснява адаптирането на данните за използване със съществуващи услуги.

Мерки за сигурност:

  • Функцията за HTTPs клиентска заявка е деактивирана по подразбиране. Системният администратор трябва изрично да активира функцията, като зададе HttpClient > Mode на Включен ( xConfiguration HttpClient Mode: Включен ).

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

  • Системният администратор може да посочи списък с HTTPs сървъри, към които устройството има право да изпраща данни. (Вижте командите xCommand HttpClient Allow Hostname .)

  • Броят на едновременните HTTPs заявки е ограничен.

Конфигурациите, посочени в тази статия, са достъпни както от уеб интерфейса на устройството, така и в API. Командите са достъпни чрез API. Прочетете статията за разширени настройки за информация как да получите достъп до уеб интерфейса и да използвате API.

Списък на разрешените HTTPs сървъри

Системният администратор може да използва тези команди, за да настрои и поддържа списък от до десет разрешени HTTPs сървъра (хостове):

  • xCommand HttpClient Allow Hostname Add Expression: <Регулярен израз, който съответства на името на хоста или IP адреса на HTTPs сървъра>

  • xCommand HttpClient Разрешаване на изчистване на името на хоста

  • xCommand HttpClient Разрешаване на списък с имена на хостове

  • xCommand HttpClient Allow Hostname Remove Id: <id на запис в списъка>

Ако списъкът съдържа записи на сървъри, можете да изпращате HTTPs заявки само до тези сървъри. Ако обаче списъкът е празен, можете да изпращате заявки до всеки HTTPs сървър.

Проверката спрямо списъка с разрешени сървъри се извършва както при използване на незащитен (HTTP), така и при защитен (HTTPS) трансфер на данни.

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

Когато изпраща заявки през HTTPS, устройството проверява сертификата на HTTPS сървъра по подразбиране. Ако се установи, че сертификатът на HTTPS сървъра не е валиден, ще получите съобщение за грешка. Устройството не изпраща никакви данни към този сървър.

Препоръчваме да използвате HTTPS с валидиране на сертификата. Ако валидирането на сертификата не е възможно, системният администратор може да настрои HttpClient > AllowInsecureHTTPS на Включено ( xConfiguration HttpClient AllowInsecureHTTPS: Включено ). Това позволява използването на HTTPS без валидиране на сертификата на сървъра.

Изпращане на HTTPs заявки

След като функцията за HTTPs клиентска заявка е активирана, можете да използвате следните команди, за да изпращате заявки до HTTPs сървър. <method> е или Post , Put , Patch , Get или Delete .

  • xCommand HttpClient <Метод> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <URL адрес за изпращане на заявката>

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

Параметърът AllowInsecureHTTPS има ефект само ако системният администратор е разрешил използването на HTTPS без валидиране на сертификата на сървъра. Ако е така, можете да изпращате данни към сървъра, без да валидирате сертификата на сървъра, ако параметърът е зададен на True . Ако пропуснете параметъра или го зададете на False , данните не се изпращат, ако валидирането на сертификата е неуспешно.

Параметърът ResposenSizeLimit е максималният размер на полезния товар (байтове), който устройството приема като отговор от сървъра. Ако полезният товар на отговора е по-голям от този максимален размер, командата връща грешка в състоянието. Съобщението за грешка казва, че максималният размер на файла е надвишен. Това обаче няма ефект върху сървърната страна; сървърът е получил и обработил правилно заявката.

Използвайте параметъра ResultBody , за да решите как да форматирате тялото на HTTP отговора от сървъра в резултата от командата. Имате три възможности:

  • Няма : Не включвайте тялото на HTTP отговора в резултата от командата.

  • Base64 : Base64 кодира тялото, преди да го включи в резултата.

  • PlainText : Включете тялото в резултата като обикновен текст. Ако отговорът съдържа непечатаеми букви, командата връща грешка в състоянието със съобщение, че са открити непечатаеми данни.

Използвайте параметъра Timeout , за да зададете период на изчакване (секунди). Ако заявката не бъде изпълнена през този период, 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 = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': заглавки}, команда); } 

Можете да направите същото в командния ред, като използвате API:

 xcommand HttpClient Поставете заглавка: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

Пример 2: Публикуване на данни в инструмент за наблюдение чрез HTTP Post

 xcommand HttpClient Заглавка на публикация: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Съобщение":"Потребител съобщи за проблем с тази система","systemName":"BoardRoom 4th floor","softwareVersion": "ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Допълнителна информация

Намерете повече подробности за това как да използвате HTTP клиентски заявки в Ръководство за персонализиране . Изберете най-новата версия.

Поддръжката на Cisco (TAC) не поддържа отстраняване на грешки на код на трети страни, включително макроси. Моля те, провери https://roomos.cisco.com ако имате нужда от помощ с макроси и код на трети страни.