Táto funkcia umožňuje zariadeniam radu Board, Desk alebo Room iniciovať a prijímať požiadavky HTTP(S) so serverom HTTP(S). Tieto zariadenia podporujú metódy ako Post, Put, Patch, Get a Delete, čo umožňuje rôzne interakcie so serverom.
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
do Zapnuté (xConfiguration HttpClient Mode: On
).Správca systému môže zabrániť používaniu HTTP nastavením
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
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.