Pomocí makra 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 organizována, takže je snadné přizpůsobit data pro použití se stávajícími službami.
Bezpečnostní opatření:
-
Funkce požadavku klienta HTTP (S) je ve výchozím nastavení zakázána. Správce systému musí tuto funkci výslovně povolit nastavením na Zapnuto (
XConfiguration HttpClient Mode: On). -
Správce systému může zabránit použití HTTP nastavením
Client AllowHTTP: Fal se). -
Správce systému může zadat seznam serverů HTTP (S), na které má zařízení povoleno odesílat data. (Viz příkazy
XCommand HttpClient Povolit název hostitele.) -
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 rozhraní API. Příkazy jsou k dispozici prostřednictvím API. Přečtěte si článek Pokročil á nastavení, kde najdete informace o přístupu k webovému rozhraní a používání rozhraní API.
Seznam povolených serverů HTTP (S)
Správce systému může pomocí těchto příkazů nastavit a udržovat seznam až deseti povolených serverů HTTP (S) (hosts):
-
XCommand HttpClient Povolit přidání výrazu názvu hostitele:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
XCommand HttpClient Povolit název hostitele Vymazat -
XCommand HttpClient Povolit seznam názvů hostitele -
XCommand HttpClient Povolit název hostitele Odstranit ID:<id of an entry in the list>
Pokud seznam obsahuje položky serveru, můžete na tyto servery odesílat pouze požadavky HTTP (S). Pokud je však seznam prázdný, můžete odesílat požadavky na libovolný server HTTP (S).
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 neposílá žádná data.
Doporučujeme používat HTTPS s ověřením certifikátu. Pokud ověření certifikátu není možné, může správce systému nastavit
On).
To umožňuje použití HTTPS bez ověření certifikátu serveru.
Odesílání HTTP (S) požadavků
Jakmile je povolena funkce požadavku klienta HTTP (S), můžete k odesílání požadavků na server HTTP (S) použít následující příkazy.
<method>je buď
Post
, P
ut
,
Patch
,
G et nebo
Delete
.
-
XCommand HttpClient [AllowInsecureHTTPS:] [Záhlaví:] [ResponseSizeLimit:] [ResultBody:] [Časový limit:] URL:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Přidání polí záhlaví je volitelné a můžete přidat až 20 polí.
Paramet
r allowInsecureHTTPS má účinek 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 nastavíte na hodnotu
Fal se
, data nebudou odeslána, pokud ověření certifikátu selže.
Parametr
respoSenSizeLimit je maximální velikost užitečného zatížení (bajty), kterou zařízení přijímá jako odpověď ze serveru. Pokud je užitečné zatížení odezvy 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 přijal a zpracoval požadavek správně.
Pomocí
parametru
resultBody 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 zakóduje tělo před jeho zahrnutím do výsledku. -
PlainText: Zahrnout tělo do výsledku jako prostý text. Pokud odpověď obsahuje netisknutelná písmena, příkaz vrátí stavovou chybu se zprávou, že došlo k netisknutelným datům.
Parametr
Timeout slouží k nastavení časového limitu (v sekundách). Pokud požadavek během tohoto období není dokončen, API vrátí chybu.
Zadejte užitečné zatížení (data) ihned po vydání příkazu. Vše, co zadáte, včetně zalomení řádků, je součástí užitečného zatížení. Až budete hotovi, zakončete koncem řádku („\ n“) a samostatným řádkem obsahujícím pouze tečku následovanou koncem řádku („. \ n“). Nyní je příkaz proveden a data jsou odeslána na server.
Příklady
Tělo zprávy je v obou těchto příkladech JSON. Může to být jakýkoli formát, v závislosti na očekávaném formátu služby, která přijímá zprávy.
Příklad 1: Řízení zařízení IoT pomocí HTTP Post
Zde je funkce makra, která zapne světlo připojené k mostu Philips Hue:
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 udělat na 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: Zasílání dat do monitorovacího nástroje pomocí protokolu HTTP Post
xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"A user reported an issue with this system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Další informace
Další podrobnosti o tom, jak používat požadavky klienta HTTP, naleznete v průvodci přizpůsobením . Vyberte nejnovější verzi.
Podpora společnosti Cisco (TAC) nepodporuje ladění kódu třetích stran, včetně maker. Pokud potřebujete pomoc s makry a kódem třetích stran, zkontrolujte https://roomos.cisco.com.