Tato funkce umožňuje zařízením řady Board, Desk nebo Room iniciovat a přijímat požadavky HTTPs pomocí serveru HTTPs. Tato zařízení podporují metody jako Post, Put, Patch, Get a Delete, což umožňuje různé interakce se serverem.
Pomocí maker můžete odeslat data na server HTTPs, kdykoli budete potřebovat. Máte kontrolu nad tím, jaká data jsou odesílána a jak jsou organizována, což usnadňuje přizpůsobení dat pro použití se stávajícími službami.
Bezpečnostní opatření:
-
Funkce klientského požadavku HTTP(S) je ve výchozím nastavení zakázána. Správce systému musí tuto funkci explicitně aktivovav v nastavěním možnosti
na Zapnuto (xConfiguration HttpClient Mode: On
). -
Správce systému může zabránit použití protokolu HTTP nastavením možnosti
na Zakázat (xConfiguration HttpClient AllowHTTP: False
). -
Správce systému může zadat seznam serverů HTTP(S), na které smí zařízení odesílat data. (Viz příkazy
xCommand HttpClient Allow Hostname
.) -
Počet souběžných požadavků HTTP(S) je omezen.
Konfigurace uvedené v tomto článku jsou dostupné jak z webového rozhraní zařízení, tak v API. Příkazy jsou dostupné prostřednictvím API. Další informace o přístupu k webovému rozhraní a používání rozhraní API naleznete v článku Rozšířená nastavení.
Seznam povolených serverů HTTPs
Správce systému může pomocí těchto příkazů nastavit a udržovat seznam až deseti povolených serverů (hostitelů) HTTP(S):
-
xCommand HttpClient Povolit název hostitele Přidat výraz: <Regulární výraz, který odpovídá názvu hostitele nebo IP adrese HTTPs serveru>
-
xCommand HttpClient Allow Hostname Clear
-
xCommand HttpClient Seznam povolených názvů hostitelů
-
xCommand HttpClient Allow Hostname Remove Id: <id položky v seznamu>
Pokud seznam obsahuje položky serverů, můžete na tyto servery odesílat pouze požadavky HTTP. Pokud je však seznam prázdný, můžete odesílat požadavky na libovolný server HTTPs.
Kontrola podle seznamu povolených serverů se provádí jak při nezabezpečeném (HTTP), tak při zabezpečeném (HTTPS) přenosu dat.
HTTPS bez ověření certifikátu
Při odesílání požadavků přes protokol HTTPS zařízení ve výchozím nastavení kontroluje certifikát serveru HTTPS. Pokud není certifikát serveru HTTPS shledán platným, zobrazí se chybová zpráva. Zařízení neodesílá na tento server žádná data.
Doporučujeme používat protokol HTTPS s ověřením platnosti certifikátu. Pokud ověření certifikátu není možné, může správce systému nastavit možnost xConfiguration HttpClient AllowInsecureHTTPS: On
). To umožňuje používat protokol HTTPS bez ověřování certifikátu serveru.
Odesílání požadavků HTTPs
Po povolení funkce klientských požadavků HTTP(S) můžete pomocí následujících příkazů odesílat požadavky na server HTTP(S). <metoda>
je Post
, Put
, Patch
, Get
nebo Delete
.
-
xCommand HttpClient <Metoda> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximální velikost odpovědi>] [ResultBody: <None/PlainText/Base64>] [Časový limit: <Časový limit>] Url: <URL pro odeslání požadavku>
Přidání polí záhlaví je volitelné a můžete přidat až 20 polí.
Parametr AllowInsecureHTTPS
má vliv pouze v případě, že správce systému povolil používání protokolu HTTPS bez ověření certifikátu serveru. Pokud ano, můžete odesílat data na server bez ověření certifikátu serveru, pokud je parametr nastaven na hodnotu True
. Pokud parametr vynecháte nebo jej nastavíte na hodnotu False
, data se v případě neúspěšného ověření certifikátu neodešlou.
Parametr ResposenSizeLimit
je maximální velikost užitečného zatížení (bajty), kterou zařízení přijme jako odpověď od serveru. Pokud je užitečné zatížení odpovědi větší než tato maximální velikost, příkaz vrátí stavovou chybu. Chybová zpráva říká, že byla překročena maximální velikost souboru. Na straně serveru to však nemá žádný vliv — server požadavek přijal a správně zpracoval.
Parametr ResultBody
slouží k rozhodnutí, jak formátovat tělo odpovědi HTTP ze serveru ve výsledku příkazu. Máte tři možnosti:
-
Žádný
: Do výsledku příkazu nezahrnujte tělo odpovědi HTTP. -
Základ 64
: Base64 zakóduje tělo před jeho zahrnutím do výsledku. -
Prostý text
: Zahrnout tělo do výsledku jako prostý text. Pokud odpověď obsahuje netisknutelná písmena, příkaz vrátí chybový stav se zprávou, že byla nalezena netisknutelná data.
Parametr Timeout
slouží k nastavení vypršení časového limitu (v sekundách). Pokud není požadavek během této doby dokončen, rozhraní API vrátí chybu.
Hned po vydání příkazu zadejte payload (data). Vše, co zadáte, včetně zalomení řádků, je součástí payloadu. Po dokončení ukončete zápis zalomením řádku („\n“) a samostatným řádkem obsahujícím tečku následovanou zalomením řádku („.\n“). Nyní se příkaz provede a data se odešlou na server.
Příklady
Tělo zprávy je v obou těchto příkladech ve formátu JSON. Může to být jakýkoli formát v závislosti na očekávaném formátu služby, která zprávy přijímá.
Příklad 1: Ovládání zařízení IoT pomocí HTTP Post
Zde je makro funkce, která zapne světlo připojené k zařízení Philips Hue Bridge:
function hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Typ obsahu: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Záhlaví': hlavičky }, příkaz); }
Totéž můžete provést v příkazovém řádku pomocí rozhraní API:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Příklad 2: Odesílání dat do monitorovacího nástroje pomocí HTTP Post
xcommand Záhlaví příspěvku HttpClient: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Uživatel nahlásil problém s tímto systémem","systemName":"BoardRoom 4th floor","softwareVersion": "ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Další informace
Další podrobnosti o používání klientských požadavků HTTP najdete v příručce Přizpůsobení. Vyberte nejnovější verzi.
Podpora Cisco (TAC) nepodporuje ladění kódu třetích stran včetně maker. Prosím zkontrolujte https://roomos.cisco.com pokud potřebujete pomoc s makry a kódem třetích stran.