Pomocí maker můžete odesílat data na server HTTP(S) kdykoli potřebujete. Máte kontrolu nad tím, jaká data jsou odesílána a jak jsou uspořádána, což usnadňuje přizpůsobení dat pro použití se stávajícími službami.
Bezpečnostní opatření:
-
Ve výchozím nastavení je zakázána funkce požadavku klienta http(S). Správce systému musí tuto funkci výslovně povolit nastavením možnosti
na Zapnuto (xConfiguration HttpClient Mode: Dne
). -
Správce systému může zabránit použití protokolu HTTP nastavením možnosti
na False (xConfiguration HttpClient AllowHTTP: Nepravda
). -
Správce systému může určit seznam http(S) serverů, na které má zařízení povoleno posí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 ve webovém rozhraní zařízení, tak v rozhraní API. Příkazy jsou dostupné prostřednictvím rozhraní API. Přečtěte si článek Pokročilá nastavení, kde najdete informace o tom, jak přistupovat k webovému rozhraní a používat rozhraní API.
Seznam povolených http(S) serverů
Správce systému může použít tyto příkazy k nastavení a udržování seznamu až deseti povolených http(S) serverů (hostitelů):
-
xCommand HttpClient Allow Hostname Add Expression:
-
Vymazat název hostitele pro příkaz xCommand HttpClient
-
Seznam názvu hostitele pro povolení HttpClient xCommand
-
xCommand HttpClient Allow Host Name Remove Id:
Pokud seznam obsahuje položky serveru, můžete na tyto servery odesílat požadavky HTTP(S) pouze. Pokud je seznam prázdný, můžete odesílat požadavky na libovolný server HTTP(S).
Kontrola proti seznamu povolených serverů se provádí jak při použití nezabezpečeného (HTTP), tak i zabezpečeného (HTTPS) přenosu dat.
HTTPS bez ověření certifikátu
Při odesílání požadavků přes HTTPS zařízení standardně kontroluje certifikát HTTPS serveru. Pokud nebude certifikát serveru HTTPS shledán platným, zobrazí se chybové hlášení. Zařízení na tento server neodesílá žádná data.
Doporučujeme použít HTTPS s validací certifikátu. Pokud ověření certifikátu není možné, může správce systému nastavit možnost xConfiguration HttpClient AllowInsecureHTTPS: Dne
). To umožňuje použití HTTPS bez ověření certifikátu serveru.
Odesílání požadavků HTTP(S)
Jakmile je povolena funkce klientských požadavků HTTP(S), můžete k odesílání požadavků na server HTTP(S) použít následující příkazy.
je buď Post
, Put
, Patch
, Get
nebo Odstranit
.
-
xCommand HttpClient [AllowInsecureHTTPS: ] [Header: ] [ResponseSizeLimit: ] [TextResultBody: ] [Timeout: ] Adresa URL:
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 vrací chybu stavu. Chybová zpráva říká, že byla překročena maximální velikost souboru. Na straně serveru to však nemá žádný vliv; server žádost obdržel a zpracoval správně.
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. -
Base64
: Base64 zakóduje tělo před jeho zahrnutím do výsledku. -
Prostý textText
: Zahrňte tělo do výsledku jako prostý text. Pokud odpověď obsahuje netisknutelná písmena, příkaz vrací chybu stavu se zprávou, že se vyskytla netisknutelná data.
Pomocí parametru Timeout
nastavte dobu časového limitu (v sekundách). Pokud není požadavek během tohoto období dokončen, API vrátí chybu.
Zadejte užitečné zatížení (data) ihned po vydání příkazu. Cokoliv zadáte, včetně přerušení linky, je součástí nákladu. Po dokončení dokončete s přerušením řádku („\n“) a samostatným řádkem obsahujícím pouze tečku následovanou přerušením řádku („.\n“). Nyní je příkaz proveden a data jsou odeslána na server.
Příklady
Tělo zprávy je JSON v obou těchto příkladech. 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í IoT zařízení pomocí http Post
Zde je funkce makra, která rozsvítí světlo, které je připojeno k Philips Hue Bridge:
funkce hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var záhlaví = 'Typ obsahu: application/json'; příkaz var = '{"on":true}'; xapi.command('HttpClient Put', {'Url': url, „Záhlaví“: headers }, příkaz); }
Totéž můžete udělat na příkazovém řádku pomocí API:
xcommand HttpClient Put hlavička: "Content-Type: Adresa URL aplikace/json: „http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true}.
Příklad 2: Zveřejňování dat do monitorovacího nástroje pomocí http Post
xcommand HttpClient Post hlavička: "Content-Type: URL aplikace/json: "https://mymonitoringserver.com/service/devicemonitoring" {"Zpráva":"Uživatel nahlásil problém s tímto systémem","systemName":"BoardRoom 4. patro","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Další informace
Více informací o tom, jak používat http klientské požadavky, naleznete v Průvodci úpravami. Vyberte nejnovější verzi.
Podpora Cisco (TAC) nepodporuje ladění kódu třetích stran, včetně maker. Zkontrolujte, https://roomos.cisco.com zda potřebujete pomoc s makry a kódem třetích stran.