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 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 HttpKlient > Režím na Zapnuto (xConfiguration HttpClient Mode: On).

  • Správce systému může zabránit použití protokolu HTTP nastavením možnosti HttpKlient > PovolitHTTP 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 k dispozici jak z webového rozhraní zařízení, tak v API. Příkazy jsou k dispozici 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ů HTTP

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 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 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 HttpKlient > PovolitNezabezpečenéHTTPS na Zapnuto (xConfiguration HttpClient AllowInsecureHTTPS: On). To umožňuje používat protokol HTTPS bez ověřování certifikátu serveru.

Odesílání požadavků HTTP

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 <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ží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é : 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í 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: Řízení 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 = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'url': url, 'header': headers }, command); } 

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 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ží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. Zkontrolujte prosím https://roomos.cisco.com , pokud potřebujete pomoc s makry a kódem třetích stran.