Z makri lahko kadar koli pošljete podatke v strežnik HTTP. Imate nadzor nad tem, kateri podatki se pošiljajo in kako so organizirani, kar olajša prilagajanje podatkov za uporabo z obstoječimi storitvami.

Varnostni ukrepi:

  • Funkcija zahteve odjemalca HTTPs je privzeto onemogočena. Skrbnik sistema mora funkcijo izrecno omogočiti tako, da možnost HttpClient>Mode nastavi na On ( xConfiguration HttpClient Mode: On ).

  • Skrbnik sistema lahko prepreči uporabo HTTP tako, da nastavi HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False ).

  • Skrbnik sistema lahko določi seznam strežnikov HTTP, v katere naprava lahko pošilja podatke. (Glejte ukaze xCommand HttpClient Allow Hostname .)

  • Število sočasnih zahtev HTTP je omejeno.

Konfiguracije, navedene v tem članku, so na voljo v spletnem vmesniku naprave in v API. Ukazi so na voljo prek API. V članku Napredne nastavitve preberite informacije o dostopu do spletnega vmesnika in uporabi API.

Seznam dovoljenih strežnikov HTTPs

Skrbnik sistema lahko s temi ukazi nastavi in vzdržuje seznam največ desetih dovoljenih strežnikov (gostiteljev) HTTP:

  • xCommand HttpClient Dovoli dodajanje imena gostitelja Izraz: <Regularni izraz, ki se ujema z imenom gostitelja ali IP naslovom strežnika HTTPs>

  • xCommand HttpClient dovoli čiščenje imena gostitelja

  • xCommand HttpClient dovoli seznam imen gostiteljev

  • xCommand HttpClient Dovoli ime gostitelja Odstrani ID: <ID vnosa na seznamu>

Če seznam vsebuje vnose v strežniku, lahko pošiljate zahteve HTTP samo tem strežnikom. Če pa je seznam prazen, lahko zahteve pošljete kateremu koli strežniku HTTP.

Preverjanje seznama dovoljenih strežnikov se izvaja tako pri uporabi nevarnega (HTTP) kot varnega (HTTPS) prenosa podatkov.

HTTPS brez preverjanja veljavnosti certifikata

Pri pošiljanju zahtev prek protokola HTTPS naprava privzeto preveri potrdilo strežnika HTTPS. Če certifikat strežnika HTTPS ni veljaven, se prikaže sporočilo o napaki. Naprava temu strežniku ne pošilja nobenih podatkov.

Priporočamo uporabo protokola HTTPS s preverjanjem veljavnosti certifikata. Če preverjanje veljavnosti potrdila ni mogoče, lahko skrbnik sistema nastavi HttpClient > AllowInsecureHTTPS na On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). To omogoča uporabo HTTPS brez preverjanja veljavnosti certifikata strežnika.

Pošiljanje zahtev HTTP

Ko je funkcija zahteve odjemalca HTTPs omogočena, lahko zahteve strežniku HTTPs pošljete s spodnjimi ukazi. <metoda> je Objavi , Put , Popravek , Get ali Izbriši .

  • xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Glava: <Besedilo glave>] [ResponseSizeLimit: <Največja velikost odgovora>] [ResultBody: <None/PlainText/Base64>] [Časovna omejitev: <Obdobje časovne omejitve>] Url: <URL za pošiljanje zahteve>

Dodajanje polj glave je izbirno in lahko dodate do 20 polj.

Parameter AllowInsecureHTTPS ima učinek le, če je skrbnik sistema dovolil uporabo protokola HTTPS, ne da bi preveril veljavnost certifikata strežnika. V tem primeru lahko strežniku pošljete podatke brez preverjanja veljavnosti certifikata strežnika, če je parameter nastavljen na True . Če parameter izpustite ali ga nastavite na »False «, podatki ne bodo poslani, če preverjanje veljavnosti potrdila ne uspe.

Parameter ResposenSizeLimit je največja koristna velikost (bajti), ki jo naprava sprejme kot odziv strežnika. Če je koristni tovor odgovora večji od največje velikosti, vrne ukaz napako stanja. Sporočilo o napaki pravi, da je največja velikost datoteke presežena. Vendar to ne vpliva na stran strežnika; strežnik je zahtevo ustrezno prejel in obdelal.

S parametrom ResultBody se odločite, kako boste v rezultatu ukaza oblikovali telo odziva HTTP iz strežnika. Na voljo imate tri možnosti:

  • Brez : v rezultat ukaza ne vključite telesa odgovora HTTP.

  • Base64 : Base64 kodira telo, preden ga vključi v rezultat.

  • PlainText : Telo vključite v rezultat kot navadno besedilo. Če odgovor vsebuje črke, ki jih ni mogoče natisniti, ukaz vrne napako stanja s sporočilom, da je prišlo do podatkov, ki jih ni mogoče natisniti.

S parametrom časovne omejitve nastavite obdobje časovne omejitve (v sekundah). Če zahteva v tem obdobju ni dokončana, vrne API napako.

Vnesite koristni tovor (podatke) neposredno po izdaji ukaza. Vse, kar vnesete, vključno s prelomi vrstic, je del koristnega tovora. Ko končate, končajte s prelomom vrstice ("\n") in ločeno vrstico, ki vsebuje samo piko, ki ji sledi prelom vrstice (".\n"). Zdaj se ukaz izvede in podatki se pošljejo strežniku.

Primeri

Telo sporočila je JSON v obeh primerih. Lahko je v kateri koli obliki, odvisno od pričakovane oblike storitve, ki prejema sporočila.

1. primer: nadzor naprav IoT z uporabo objave HTTP

Tu je makro funkcija, ki vklopi luč, ki je povezana z mostom Philips Hue:

 funkcija hue_command(podatki) { 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:

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

2. primer: objavljanje podatkov v orodju za spremljanje z uporabo objave HTTP

 xcommand HttpClient Post Glava: »Vrsta vsebine: aplikacija/json« URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Uporabnik je sporočil težavo s tem sistemom","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Dodatne informacije

Več podrobnosti o uporabi zahtev odjemalca HTTP najdete v vodniku za prilagajanje. Izberite najnovejšo različico.

Ciscova podpora (TAC) ne podpira odpravljanja napak v kodi tretjih oseb, vključno z makri. Preverite https://roomos.cisco.com , če potrebujete pomoč pri makrih in kodi tretjih oseb.