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 HttpClient > Način do Vklopljeno ( xConfiguration HttpClient Mode: On ).

  • Skrbnik sistema lahko prepreči uporabo HTTP z nastavitvijo HttpClient > Dovoli HTTP 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 HttpClient > Dovoli nezaščiten HTTPS do Vklopljeno ( 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.