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

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

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

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

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

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

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

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

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

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

  • xCommand HttpClient Разреши Hostname Изчисти

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

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

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

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

HTTPS без валидиране на сертификат

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

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

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

След като функцията за клиентска заявка на HTTP е разрешена, можете да използвате следните команди, за да изпращате заявки до HTTP сървър. <метод> е или Пост,Поставяне,Кръпка,Получаване , или Изтриване.

  • xCommand HttpClient <Метод> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Максимален размер на отговора>] [ResultBody: <None/PlainText/Base64>] [Време на изчакване: <Период на изчакване>] URL: <URL адрес, на който да изпратите заявката>

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

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

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

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

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

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

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

Използвайте параметъра Timeout , за да зададете период на изчакване (секунди). Ако заявката не е завършена през този период, API връща грешка.

Въведете полезния товар (данните) директно след като сте издали командата. Всичко, което въвеждате, включително прекъсванията на редове, е част от полезния товар. Когато сте готови, завършвайте с нов ред ("\n") и отделен ред, съдържащ само точка, последвана от нов ред (".\n"). Сега командата се изпълнява и данните се изпращат на сървъра.

Примери

Тялото на съобщението е JSON и в двата примера. Това може да бъде всеки формат, в зависимост от очаквания формат на услугата, която получава съобщенията.

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

Ето една макро функция, която включва светлина, свързана с мост Philips Hue:

 функция 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': 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" {"Съобщение":"Потребител съобщи за проблем с тази система","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

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

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

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