Z makri lahko pošljete podatke v strežnik HTTP(S), kadar koli želite. Nadzorujete, kateri podatki se pošiljajo in kako so organizirani, zato jih lahko preprosto prilagodite 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 > Mode na On ( xConfiguration HttpClient Mode: Na spletni strani ).

  • Skrbnik sistema lahko prepreči uporabo protokola HTTP z nastavitvijo HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False ).

  • Skrbnik sistema lahko določi seznam strežnikov HTTP(S), ki jim lahko naprava pošilja podatke. (Glejte ukaz xCommand HttpClient Allow Hostname .)

  • Število sočasnih zahtevkov HTTP(S) je omejeno.

Konfiguracije iz tega članka so na voljo v spletnem vmesniku naprave in v vmesniku API. Ukazi so na voljo prek vmesnika API. Za informacije o dostopu do spletnega vmesnika in uporabi vmesnika API preberite članek Napredne nastavitve .

Seznam dovoljenih strežnikov HTTP(S)

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

  • xCommand HttpClient Dovoli gostiteljsko ime Dodaj izraz:

  • xCommand HttpClient Dovoli ime gostitelja Clear

  • xCommand HttpClient Seznam dovoljenih gostiteljskih imen

  • xCommand HttpClient Dovoli gostiteljsko ime Odstrani Id:

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

Preverjanje glede na seznam dovoljenih strežnikov se izvaja tako pri nezaščitenem (HTTP) kot pri varnem (HTTPS) prenosu podatkov.

HTTPS brez potrjevanja potrdila

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

Priporočamo uporabo protokola HTTPS s potrdilom. Če preverjanje potrdila ni mogoče, lahko skrbnik sistema nastavi HttpClient > AllowInsecureHTTPS na On ( xConfiguration HttpClient AllowInsecureHTTPS: Na spletni strani ). To omogoča uporabo protokola HTTPS brez potrjevanja potrdila strežnika.

Pošiljanje zahtevkov HTTP(S)

Ko je omogočena funkcija zahtevkov odjemalcev HTTP(S), lahko za pošiljanje zahtevkov strežniku HTTP(S) uporabite naslednje ukaze. je bodisi Post , Put , Patch , Get , bodisi Delete .

  • xCommand HttpClient [AllowInsecureHTTPS: <True/False>] [Header: ] [ResponseSizeLimit: ] [ResultBody: <None/PlainText/Base64>] [Timeout: ] Url:

Dodajanje polj glave ni obvezno, dodate pa lahko do 20 polj.

Parameter AllowInsecureHTTPS učinkuje le, če je skrbnik sistema dovolil uporabo HTTPS brez potrditve certifikata strežnika. Če je tako, lahko pošljete podatke v strežnik, ne da bi potrdili potrdilo strežnika, če je parameter nastavljen na True . Če parametra ne navedete ali ga nastavite na False , se podatki ne pošljejo, če preverjanje potrdila ni uspešno.

Parameter ResposenSizeLimit je največja velikost koristnega tovora (bajti), ki ga naprava sprejme kot odgovor strežnika. Če je koristni tovor odgovora večji od te največje velikosti, ukaz vrne statusno napako. V sporočilu o napaki piše, da je presežena največja velikost datoteke. Vendar to nima nobenega vpliva na strežnik; strežnik je prejel in pravilno obdelal zahtevo.

S parametrom ResultBody določite, kako oblikovati telo odgovora HTTP iz strežnika v rezultatu ukaza. Na voljo imate tri možnosti:

  • Ni : V rezultat ukaza ne vključite telesa odgovora HTTP.

  • Base64 : kodiranje Base64 telesa, preden ga vključite v rezultat.

  • PlainText : Vsebino vključite v rezultat kot navadno besedilo. Če odgovor vsebuje netiskljive črke, ukaz vrne statusno napako s sporočilom, da je prišlo do netiskljivih podatkov.

S parametrom Timeout nastavite časovno obdobje (v sekundah). Če se zahteva v tem času ne zaključi, API vrne napako.

Takoj po izdaji ukaza vnesite koristni tovor (podatke). Vse, kar vnesete, vključno s prekinitvami vrstic, je del koristnega bremena. Ko končate, zaključite s prekinitvijo vrstice ("\n") in ločeno vrstico, ki vsebuje samo piko, ki ji sledi prekinitev vrstice (".\n"). Zdaj se ukaz izvrši in podatki se pošljejo v strežnik.

Primeri

V obeh primerih je telo sporočila JSON. To je lahko kateri koli format, odvisno od pričakovanega formata storitve, ki prejema sporočila.

Primer 1: Upravljanje naprav IoT z uporabo objave HTTP

Tukaj je makro funkcija, ki vklopi luč, povezano s Philipsovim mostom 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 }, ukaz); } 

Enako lahko storite v ukazni vrstici z uporabo vmesnika API:

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

Primer 2: Pošiljanje podatkov v orodje za spremljanje z uporabo HTTP Post

 xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message": "Uporabnik je poročal o težavi s tem sistemom", "systemName": "BoardRoom 4th floor", "softwareVersion": "ce9.6.0", "softwareReleaseDate": "2018-12-13", "videoMonitors": "Dual"} . 

Dodatne informacije

Več podrobnosti o uporabi zahtevkov odjemalcev HTTP najdete v priročniku za prilagajanje . Izberite najnovejšo različico.

Ciscova podpora (TAC) ne podpira razhroščevanja kode tretjih oseb, vključno z makri. Če potrebujete pomoč z makri in kodo tretjih oseb, se obrnite na spletno stran https://roomos.cisco.com .