Pomocí maker můžete kdykoli odesílat data na http(S) server. Můžete si vybrat, která data chcete odeslat, a strukturovat je tak, jak chcete. Tímto způsobem můžete data přizpůsobit již zavedené službě.

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

  • Správce systému může zabránit použití http nastavením HttpClient > AllowHTTP to False ( xConfiguration HttpClient AllowHTTP: False ).

  • Správce systému může určit seznam http(S) serverů, na které může zařízení posílat data. (Viz xCommand HttpClient Allow Hostname příkazů.)

  • Počet souběžných požadavků http(S) je omezen.

Konfigurace, které jsou uvedeny v tomto článku, jsou k dispozici jak z webového rozhraní zařízení, tak v API. Příkazy jsou k dispozici v 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: <Regular expression that matches the host name or IP address of the HTTP(S) server>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

  • xCommand HttpClient Allow Hostname Remove Id: <id of an entry in the list>

Pokud seznam není prázdný, můžete požadavky http(S) odesílat pouze na servery v seznamu. Pokud je seznam prázdný, můžete požadavky odeslat na libovolný http(S) server.

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

Odesílání požadavků http(S)

Jakmile je funkce http(S) client request povolena, můžete k odesílání požadavků na http(S) server použít následující příkazy. <method> je buď Post , Put , Patch , Get nebo Delete .

  • xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <URL to send the request to>

Přidání polí záhlaví je volitelné, ale můžete přidat až 20 polí.

Ten AllowInsecureHTTPS parametr má účinek pouze v případě, že správce systému povolil použití HTTPS bez ověření certifikátu serveru. Pokud ano, můžete posílat data na server bez ověření certifikátu serveru, pokud je parametr nastaven na True . Pokud vynecháte parametr, nebo jej nastavíte na False , data se nezasílají, pokud ověření certifikátu selže.

Ten ResposenSizeLimit parametr je maximální velikost užitečného zatížení (bajty), které zařízení přijímá jako odpověď ze 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ě.

Použijte ResultBody parametr pro rozhodnutí, jak zformátovat tělo http odpovědi ze serveru ve výsledku příkazu. Máte tři možnosti:

  • None : Nezahrnout tělo http odpovědi 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 vrací chybu stavu se zprávou, že se vyskytla netisknutelná data.

Použijte Timeout parametr pro nastavení časového limitu (sekundy). 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:


     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í 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: Zveřejňování dat do monitorovacího nástroje pomocí 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

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í strany, včetně maker. Pokud potřebujete pomoc s makry a kódem třetí strany, zkontrolujte komunitu vývojářů Cisco Collaboration. Také existuje mnoho vývojářských a integračních zdrojů na této stránce.