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 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 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 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ů 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.