Ta funkcija omogoča napravam serije Board, Desk ali Room, da sprožijo in prejmejo zahteve HTTP(S) s strežnikom HTTP(S). Te naprave podpirajo metode, kot so Post, Put, Patch, Get in Delete, kar omogoča različne interakcije s strežnikom.
Z makri lahko pošljete podatke na strežnik HTTP(S), kadar koli jih potrebujete. Imate nadzor nad tem, kateri podatki se pošiljajo in kako so organizirani, kar olajša prilagoditev podatkov za uporabo z obstoječimi storitvami.
Varnostni ukrepi:
Funkcija zahteve odjemalca HTTP(S) je privzeto onemogočena. Skrbnik sistema mora funkcijo izrecno omogočiti z nastavitvijo
do Vklopljeno (xConfiguration HttpClient Mode: On
).Skrbnik sistema lahko prepreči uporabo HTTP z nastavitvijo
do False (xConfiguration HttpClient AllowHTTP: False
).Skrbnik sistema lahko določi seznam strežnikov HTTP(S), ki jim naprava sme pošiljati podatke. (Glej
xCommand HttpClient Allow Hostname
ukazi.)Število sočasnih zahtev HTTP(S) je omejeno.
Konfiguracije, omenjene v tem članku, so na voljo v spletnem vmesniku naprave in v API-ju. Ukazi so na voljo prek API-ja. Preberi Članek o naprednih nastavitvah za informacije o dostopu do spletnega vmesnika in uporabi API-ja.
Seznam dovoljenih strežnikov HTTP(S).
Skrbnik sistema lahko uporabi te ukaze za nastavitev in vzdrževanje seznama do desetih dovoljenih strežnikov HTTP(S) (gostiteljev):
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>
Če seznam vsebuje vnose strežnikov, lahko tem strežnikom pošiljate samo zahteve HTTP(S). Če pa je seznam prazen, lahko pošljete zahteve kateremu koli strežniku HTTP(S).
Preverjanje glede na seznam dovoljenih strežnikov se izvede tako pri uporabi nevarnega (HTTP) kot pri varnem (HTTPS) prenosu podatkov.
HTTPS brez preverjanja potrdila
Pri pošiljanju zahtev prek HTTPS naprava privzeto preveri potrdilo strežnika HTTPS. Če potrdilo strežnika HTTPS ni veljavno, se prikaže sporočilo o napaki. Naprava ne pošilja nobenih podatkov v ta strežnik.
Priporočamo uporabo HTTPS s preverjanjem potrdila. Če preverjanje potrdila ni mogoče, lahko nastavi skrbnik sistema
xConfiguration HttpClient AllowInsecureHTTPS: On
). To omogoča uporabo HTTPS brez preverjanja potrdila strežnika.
Pošiljanje zahtev HTTP(S).
Ko je funkcija zahteve odjemalca HTTP(S) omogočena, lahko uporabite naslednje ukaze za pošiljanje zahtev strežniku HTTP(S).
<method>
je bodisi
Post
,
Put
,
Patch
,
Get
, oz
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>
Dodajanje polj glave ni obvezno in lahko dodate do 20 polj.
The
AllowInsecureHTTPS
parameter ima učinek le, če je skrbnik sistema dovolil uporabo HTTPS brez potrditve potrdila strežnika. Če je tako, lahko pošljete podatke strežniku brez preverjanja potrdila strežnika, če je parameter nastavljen na
True
. Če izpustite parameter ali ga nastavite na
False
, se podatki ne pošljejo, če preverjanje potrdila ne uspe.
The
ResposenSizeLimit
parameter je največja velikost tovora (bajti), ki jo naprava sprejme kot odgovor strežnika. Če je obremenitev odgovora večja od te največje velikosti, ukaz vrne napako statusa. Sporočilo o napaki pravi, da je največja velikost datoteke presežena. Vendar to ne vpliva na strežniško stran; je strežnik prejel in ustrezno obdelal zahtevo.
Uporabi
ResultBody
parameter za odločitev, kako oblikovati telo odziva HTTP s strežnika v rezultatu ukaza. Imate tri možnosti:
None
: Ne vključite telesa odgovora HTTP v rezultat ukaza.Base64
: Base64 kodira telo, preden ga vključi v rezultat.PlainText
: Telo vključite v rezultat kot golo besedilo. Če odgovor vsebuje črke, ki jih ni mogoče natisniti, ukaz vrne napako stanja s sporočilom, da so bili najdeni podatki, ki jih ni mogoče natisniti.
Uporabi
Timeout
parameter za nastavitev časovne omejitve (v sekundah). Če zahteva v tem obdobju ni dokončana, API vrne napako.
Koristni tovor (podatke) vnesite takoj, ko ste izdali ukaz. Vse, kar vnesete, vključno s prelomi vrstic, je del tovora. Ko končate, zaključite s prelomom vrstice (»\n«) in ločeno vrstico, ki vsebuje samo piko, ki ji sledi prelom vrstice (».\n«). Zdaj je ukaz izvršen in podatki so poslani na strežnik.
Primeri
V obeh primerih je telo sporočila JSON. Lahko je katera koli oblika, odvisno od pričakovane oblike storitve, ki prejema sporočila.
Primer 1: Nadzor naprav IoT s pomočjo HTTP Post
Tu je makro funkcija, ki vklopi luč, ki je povezana s 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); }
Enako lahko storite v ukazni vrstici z uporabo API-ja:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Primer 2: Objava podatkov v nadzornem orodju z uporabo 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"} .
Nadaljne informacije
Več podrobnosti o uporabi zahtev odjemalca HTTP najdete v Priročnik za prilagajanje . Izberite najnovejšo različico.
Podpora Cisco (TAC) ne podpira odpravljanja napak kode tretjih oseb, vključno z makri. Prosim preverite https://roomos.cisco.com če potrebujete pomoč pri makrih in kodi tretjih oseb.