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

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, které jsou uvedeny v tomto článku, jsou dostupné jak ve webovém rozhraní zařízení, tak v rozhraní API. Příkazy jsou dostupné v rozhraní API. 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 Allow Hostname Add Expression: <Regulární výraz, který odpovídá názvu hostitele nebo adrese IP serveru HTTP(S)>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

  • xCommand HttpClient Allow Hostname Remove Id: <id položky v seznamu>

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

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(S)

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>] [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í není povinné, ale 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:

  • None: 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: Zahrnee 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 = '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 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

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. Pokud potřebujete pomoc s makry a kódem třetích stran, podívejte se do komunity Cisco Collaboration Developer. Na těchto stránkách je také mnoho zdrojů pro vývojáře a integrátory.