Pomocou makier môžete odosielať údaje na server HTTP(S) kedykoľvek to potrebujete. Máte kontrolu nad tým, aké údaje sa odosielajú a ako sú usporiadané, čo uľahčuje prispôsobenie údajov na použitie s existujúcimi službami.

Bezpečnostné opatrenia:

  • Funkcia požiadavky klienta HTTP(S) je predvolene vypnutá. Správca systému musí túto funkciu explicitne povoliť nastavením HttpClient > Režim do Zapnuté ( xConfiguration HttpClient Mode: On ).

  • Správca systému môže zabrániť používaniu HTTP nastavením HttpClient > Povoliť HTTP do Nepravdivé ( xConfiguration HttpClient AllowHTTP: False ).

  • Správca systému môže zadať zoznam serverov HTTP(S), na ktoré môže zariadenie odosielať údaje. (Pozrite si xCommand HttpClient Allow Hostname príkazy.)

  • Počet súbežných HTTP(S) požiadaviek je obmedzený.

Konfigurácie uvedené v tomto článku sú dostupné z webového rozhrania zariadenia aj z API. Príkazy sú dostupné cez API. Čítať Článok Rozšírené nastavenia informácie o tom, ako pristupovať k webovému rozhraniu a používať API.

Zoznam povolených serverov HTTP(S).

Správca systému môže použiť tieto príkazy na nastavenie a udržiavanie zoznamu až desiatich povolených HTTP(S) serverov (hostiteľov):

  • 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>

Ak zoznam obsahuje položky serverov, môžete na tieto servery posielať iba požiadavky HTTP(S). Ak je však zoznam prázdny, môžete odoslať požiadavky na ľubovoľný server HTTP(S).

Kontrola oproti zoznamu povolených serverov sa vykonáva pri nezabezpečenom (HTTP) aj zabezpečenom (HTTPS) prenose dát.

HTTPS bez overenia certifikátu

Pri odosielaní požiadaviek cez HTTPS zariadenie štandardne kontroluje certifikát HTTPS servera. Ak sa nezistí, že certifikát servera HTTPS je platný, zobrazí sa chybové hlásenie. Zariadenie na tento server neposiela žiadne údaje.

Odporúčame používať HTTPS s overením certifikátu. Ak overenie certifikátu nie je možné, môže ho nastaviť správca systému HttpClient > AllowInsecureHTTPS do Zapnuté ( xConfiguration HttpClient AllowInsecureHTTPS: On ). To umožňuje použitie HTTPS bez overenia certifikátu servera.

Odosielanie požiadaviek HTTP(S).

Po aktivácii funkcie požiadavky klienta HTTP(S) môžete na odosielanie požiadaviek na server HTTP(S) použiť nasledujúce príkazy. <method> je buď Post , Put , Patch , Get , alebo 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>

Pridanie polí hlavičky je voliteľné a môžete pridať až 20 polí.

The AllowInsecureHTTPS parameter má účinok iba vtedy, ak správca systému povolil používanie HTTPS bez overenia certifikátu servera. Ak áno, môžete odoslať údaje na server bez overenia certifikátu servera, ak je parameter nastavený na True . Ak parameter vynecháte, alebo ho nastavíte na False , údaje sa neodošlú, ak overenie certifikátu zlyhá.

The ResposenSizeLimit parameter je maximálna veľkosť užitočného zaťaženia (bajty), ktorú zariadenie akceptuje ako odpoveď zo servera. Ak je užitočné zaťaženie odpovede väčšie ako táto maximálna veľkosť, príkaz vráti stavovú chybu. Chybové hlásenie hovorí, že je prekročená maximálna veľkosť súboru. Na strane servera to však nemá žiadny vplyv; server správne prijal a spracoval požiadavku.

Použi ResultBody Rozhodnite o tom, ako naformátovať telo odpovede HTTP zo servera vo výsledku príkazu. Máte tri možnosti:

  • None : Do výsledku príkazu nezahŕňajte telo odpovede HTTP.

  • Base64 : Base64 kóduje telo pred jeho zahrnutím do výsledku.

  • PlainText : Zahrnúť telo do výsledku ako obyčajný text. Ak odpoveď obsahuje netlačiteľné písmená, príkaz vráti stavovú chybu so správou, že boli nájdené netlačiteľné údaje.

Použi Timeout parameter na nastavenie časového limitu (v sekundách). Ak sa požiadavka počas tohto obdobia nedokončí, API vráti chybu.

Hneď po zadaní príkazu zadajte užitočné zaťaženie (údaje). Čokoľvek, čo zadáte, vrátane zalomení riadkov, je súčasťou užitočného zaťaženia. Po dokončení dokončite zalomením riadku („\n“) a samostatným riadkom obsahujúcim iba bodku, po ktorej bude nasledovať zalomenie riadku („\n“). Teraz sa príkaz vykoná a údaje sa odošlú na server.

Príklady

Telo správy je v oboch týchto príkladoch JSON. Môže to byť akýkoľvek formát v závislosti od očakávaného formátu služby, ktorá prijíma správy.

Príklad 1: Ovládanie zariadení IoT pomocou HTTP Post

Tu je makro funkcia, ktorá zapne svetlo, ktoré je pripojené 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); } 
   

To isté môžete urobiť na príkazovom riadku pomocou rozhrania API:


     xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 
   

Príklad 2: Odosielanie údajov do monitorovacieho nástroja pomocou 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"} . 
   

Ďalšie informácie

Ďalšie podrobnosti o tom, ako používať požiadavky klienta HTTP, nájdete v Sprievodca prispôsobením . Vyberte najnovšiu verziu.

Podpora Cisco (TAC) nepodporuje ladenie kódu tretích strán vrátane makier. Prosím skontroluj https://roomos.cisco.com ak potrebujete pomoc s makrami a kódom tretích strán.