Pomocí maker můžete kdykoli odesílat data na server HTTPs. 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 požadavků klienta HTTP je ve výchozím nastavení zakázaná. Správce systému musí tuto funkci explicitně povolit nastavením na hodnotu On (
xConfiguration Režim HttpClient: Zapnuto). -
Správce systému může zabránit použití protokolu HTTP nastavením HttpClient hodnotu False ( xConfiguration HttpClient AllowHTTP: False
). -
Správce systému může určit seznam serverů HTTP, na které může zařízení odesílat data. (Viz
příkazy xCommand HttpClient Allow Hostname.) -
Počet souběžných požadavků HTTP je omezený.
Konfigurace uvedené v tomto článku jsou k dispozici jak z webového rozhraní zařízení, tak v API. Příkazy jsou dostupné prostřednictvím API. Přečtěte si článek Upřesnit nastavení, kde najdete informace o tom, jak přistupovat k webovému rozhraní a používat API.
Seznam povolených serverů HTTP
Správce systému může pomocí těchto příkazů nastavit a udržovat seznam až deseti povolených serverů HTTP (hostitelů):
-
xCommand HttpClient Allow Hostname Add Expression: <Regulární výraz, který odpovídá názvu hostitele nebo IP adrese serveru HTTPs> -
xCommand HttpClient Povolit vymazání názvu hostitele -
xCommand HttpClient Povolit seznam názvů hostitelů -
xCommand HttpClient Allow Hostname Remove ID: <ID položky v seznamu>
Pokud seznam obsahuje položky serveru, můžete na tyto servery odesílat pouze požadavky HTTPs. Pokud je však seznam prázdný, můžete odesílat požadavky na libovolný server HTTPs.
Kontrola seznamu povolených serverů se provádí jak při použití nezabezpečeného (HTTP), tak 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í ve výchozím nastavení kontroluje certifikát serveru HTTPS. Pokud certifikát serveru HTTPS není shledán platným, zobrazí se chybová zpráva. Zařízení na tento server neodesílá žádná data.
S ověřováním certifikátu doporučujeme používat protokol HTTPS. Pokud ověření certifikátu není možné, může správce systému nastavit HttpClient Zapnuto ( xConfiguration HttpClient AllowInsecureHTTPS: Zapnuto ). To umožňuje použití protokolu HTTPS bez ověření certifikátu serveru.
Odesílání požadavků HTTP
Jakmile je povolená funkce požadavků klienta HTTPs, můžete k odesílání požadavků na server HTTP použít následující příkazy. <metoda>je buďPOST , PUT,Patch,Get nebo Delete.
-
xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Záhlaví: <Text záhlaví>] [ResponseSizeLimit: <Maximální velikost odpovědi>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Adresa 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žití protokolu HTTPS bez ověření certifikátu serveru. Pokud ano, můžete odeslat 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 , nebudou data odeslána, pokud se ověření certifikátu nezdaří.
Parametr ResposenSizeLimit je maximální velikost datové části (bajty), kterou zařízení přijímá jako odpověď ze serveru. Pokud je datová část odpovědi větší než tato maximální velikost, příkaz vrátí chybu stavu. Chybová zpráva říká, že je překročena maximální velikost souboru. To však nemá žádný vliv na straně serveru; Server požadavek přijal a řádně zpracoval.
Pomocí parametru ResultBody se rozhodněte, jak formátovat tělo odpovědi HTTP ze serveru ve výsledku příkazu. Máte tři možnosti:
-
Žádné: Nezahrnujte tělo odpovědi HTTP do výsledku příkazu. -
Base64: Base64 kóduje tělo před jeho zahrnutím do výsledku. -
Prostý text: Zahrňte tělo do výsledku jako prostý text. Pokud odpověď obsahuje netisknutelná písmena, příkaz vrátí chybu stavu se zprávou, že byla zjištěna netisknutelná data.
Pomocí parametru Timeout můžete nastavit časový limit (sekundy). Pokud požadavek není během této doby dokončen, API vrátí chybu.
Zadejte datovou část (data) ihned po vydání příkazu. Vše, co zadáte, včetně zalomení řádků, je součástí datové části. Po dokončení dokončete zalomením řádku ("\n") a samostatným řádkem obsahujícím pouze tečku následovanou zalomení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 libovolný formát v závislosti na očekávaném formátu služby, která zprávy přijímá.
Příklad 1: Řízení zařízení IoT pomocí protokolu HTTP POST
Zde je makro funkce, která zapne světlo, které je připojeno k Philips Hue Bridge:
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); }
Totéž můžete provést na příkazovém řádku pomocí API:
xcommand HttpClient PUT Hlavička: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Příklad 2: Odeslání dat do nástroje pro monitorování pomocí protokolu HTTP POST
xcommand HttpClient POST Header: "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žití požadavků klienta HTTP najdete v příručce pro přizpůsobení. Vyberte nejnovější verzi.
Podpora Cisco (TAC) nepodporuje ladění kódu třetích stran, včetně maker. Zkontrolujte prosím https://roomos.cisco.com , pokud potřebujete pomoc s makry a kódem třetích stran.