С макросите можете да изпращате данни до HTTP (S) сървър, когато е необходимо. Имате контрол върху това какви данни се изпращат и как се организират, което улеснява адаптирането на данните за използване със съществуващи услуги.
Мерки за сигурност:
-
Функцията HTTP (S) клиентска заявка е деактивирана по подразбиране. Системният администратор трябва изрично да активира функцията, като настрои de на Включено (
XConfiguration HttpClient Mode:Включен). -
Системният администратор може да предотврати използването на HTTP, като настрои Htt : False).
-
Системният администратор може да посочи списък с HTTP (S) сървъри, към които устройството може да изпраща данни. (Вижте
командите XCommand HttpClient Разрешаване на име на хост.) -
Броят на едновременните HTTP (S) заявки е ограничен.
Конфигурациите, посочени в тази статия, са достъпни както от уеб интерфейса на устройството, така и от API. Командите са достъпни чрез API. Прочетете стати ята Разширени настройки за информация как да получите достъп до уеб интерфейса и да използвате API.
Списък на разрешените HTTP (S) сървъри
Системният администратор може да използва тези команди, за да настрои и поддържа списък с до десет разрешени HTTP (S) сървъра (хостове):
-
XCommand HttpClient Разрешаване на име на хост Добавяне на израз:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
XCommand HTTPClient Разрешаване на името на хоста Изчистване -
XCommand HTTPClient Разрешаване на списък с имена на хост -
XCommand HttpClient Разрешаване на името на хоста Премахване на идентификат<id of an entry in the list>
Ако списъкът съдържа записи на сървъра, можете да изпращате HTTP (S) заявки само до тези сървъри. Ако обаче списъкът е празен, можете да изпращате заявки до всеки HTTP (S) сървър.
Проверката срещу списъка с разрешени сървъри се извършва както при използване на несигурен (HTTP), така и защитен (HTTPS) трансфер на данни.
HTTPS без валидиране на сертификат
Когато изпраща заявки през HTTPS, устройството проверява сертификата на HTTPS сървъра по подразбиране. Ако не се установи, че сертификатът HTTPS сървър е валиден, ще получите съобщение за грешка. Устройството не изпраща никакви данни на този сървър.
Препоръчваме да използвате HTTPS с валидиране на сертификат. Ако валидирането на сертификата не е възможно, системният администратор може да настрои On). Това позволява използването на HTTPS без валидиране на сертификата на сървъра.
Изпращане на HTTP (S) заявки
След като функцията HTTP (S) клиентска заявка е активирана, можете да използвате следните команди, за да изпращате заявки до HTTP (S) сървър.
<method>е или
Публикуване
,
Постав
яне,
Поправ
яне
,
В земане или Из
триване
.
-
XCommand HttpClient [AllowInsecureHTTPS:] [Заглавка:] [Отговорна граница:] [ResultBody:] [Време за изтичане:] URL адрес:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Добавянето на заглавни полета не е задължително и можете да добавите до 20 полета.
Пара
мет
ърът allowInsecureHTTPS има ефект само ако системният администратор е разрешил използването на HTTPS, без да валидира сертификата на сървъра. Ако е така, можете да изпращате данни на сървъра, без да валидирате сертификата на сървъра, ако параметърът е зададен на
True
. Ако пропуснете параметъра или го зададете на False, данните не се изпращат
, ако валидирането на сертификата се провали.
Пара
мет
ърът ResposensizeLimit е максималният размер на полезния товар (байтове), който устройството приема като отговор от сървъра. Ако полезният товар на отговора е по-голям от този максимален размер, командата връща грешка в състоянието. Съобщението за грешка казва, че максималният размер на файла е надвишен. Това обаче няма ефект от страна на сървъра; сървърът е получил и обработил заявката правилно.
Използвайте
параметъра
ResultBody, за да решите как да форматирате тялото на HTTP отговора от сървъра в резултата от командата. Имате три варианта:
-
Няма: Не включвайте тялото на HTTP отговора в резултата от командата. -
Base64: Base64 кодира тялото, преди да го включите в резултата. -
PlainText: Включете тялото в резултата като обикновен текст. Ако отговорът съдържа букви, които не могат да се отпечатат, командата връща грешка в състоянието със съобщение, че са били срещани данни, които не могат да се отпечатат.
Използвайте
параметъра
Timeout, за да зададете период на изтичане (секунди). Ако заявката не бъде изпълнена през този период, API връща грешка.
Въведете полезния товар (данни) веднага след като сте издали командата. Всичко, което въведете, включително прекъсванията на линиите, е част от полезния товар. Когато приключите, завършете с прекъсване на линията („\n“) и отделен ред, съдържащ само период, последван от прекъсване на линията (“. \ n“). Сега командата се изпълнява и данните се изпращат на сървъра.
Примери
Тялото на съобщението е JSON и в двата примера. Това може да бъде всеки формат, в зависимост от очаквания формат на услугата, която получава съобщенията.
Пример 1: Управление на IoT устройства с помощта на HTTP Post
Ето макро функция, която включва светлина, която е свързана към мост Philips Hue:
function hue_command(data) { 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" {"Message":"A user reported an issue with this system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Допълнителна информация
Намерете повече подробности за това как да използвате HTTP клиентски заявки в ръководството за персонализиране . Изберете най-новата версия.
Поддръжката на Cisco (TAC) не поддържа отстраняване на грешки на код на трети страни, включително макроси. Моля, проверете https://roomos.cisco.com, ако имате нужда от помощ с макроси и код на трети страни.