Pomoću makroa možete slati podatke na HTTP server kad god je to potrebno. Imate kontrolu nad tim koji se podaci šalju i kako su organizovani, što olakšava prilagođavanje podataka za upotrebu sa postojećim uslugama.

Mere bezbednosti:

  • Funkcija HTTP klijentskog zahteva je podrazumevano onemogućena. Sistemski administrator mora eksplicitno omogućiti funkciju postavljanjem HttpClient > Mode na On ( xConfiguration HttpClient Mode: On ).

  • Sistemski administrator može da spreči korišćenje HTTP-a tako što će postaviti HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False ).

  • Administrator sistema može odrediti listu HTTP servera na koje je uređaju dozvoljeno da šalje podatke. (Pogledajte kCommand HttpClient Dozvoli Hostname komande.)

  • Broj istovremenih HTTP zahteva je ograničen.

Konfiguracije navedene u ovom članku dostupne su i sa veb interfejsa uređaja i u API-ju. Komande su dostupne preko API-ja. Pročitajte članak Napredna podešavanja za informacije o tome kako pristupiti veb interfejsu i koristiti API.

Lista dozvoljenih HTTP servera

Sistemski administrator može koristiti ove komande za postavljanje i održavanje liste do deset dozvoljenih HTTP servera (hostova):

  • kCommand HttpClient Dozvoli ime hosta Dodaj izraz: <Redovni izraz koji odgovara imenu domaćina ili IP adresi HTTP servera>

  • kCommand HttpClient Dozvoli Hostname Clear

  • kCommand HttpClient Dozvoli listu imena hosta

  • kCommand HttpClient Dozvoli Hostname Remove Id: <id unosa na listi>

Ako lista sadrži stavke servera, možete slati samo HTTP zahteve tim serverima. Međutim, ako je lista prazna, možete slati zahteve na bilo koji HTTP server.

Provera liste dozvoljenih servera vrši se i kada se koristi nesiguran (HTTP) i siguran (HTTPS) prenos podataka.

HTTPS bez validacije sertifikata

Prilikom slanja zahteva preko HTTPS-a, uređaj podrazumevano proverava sertifikat HTTPS servera. Ako se ne utvrdi da je sertifikat HTTPS servera validan, dobijate poruku o grešci. Uređaj ne šalje nikakve podatke na taj server.

Preporučujemo da koristite HTTPS sa validacijom sertifikata. Ako validacija sertifikata nije moguća, administrator sistema može podesiti HttpClient > AllowInsecureHTTPS na On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Ovo omogućava korišćenje HTTPS-a bez potvrđivanja sertifikata servera.

Slanje HTTP zahteva

Kada je funkcija HTTP klijentskog zahteva omogućena, možete koristiti sledeće komande za slanje zahteva na HTTP server. <metoda> je ili Post , Put , Patch , Get ili Delete .

  • kCommand HttpClient <Method> [AllowInsecureHTTPS: <True / False>] [Header: <Header tekt>] [ResponseSizeLimit: <Maksimalna veličina odgovora>] [ResultBodi: <None / PlainTekt / Base64>] [Timeout: <Timeout period>] URL: <URL za slanje zahteva>

Dodavanje polja zaglavlja nije obavezno, a možete dodati do KSNUMKS polja.

Parametar AllowInsecureHTTPS ima efekat samo ako je administrator sistema dozvolio upotrebu HTTPS-a bez validacije sertifikata servera. Ako je tako, možete poslati podatke na server bez potvrđivanja sertifikata servera ako je parametar podešen na True . Ako izostavite parametar, ili ga podesite na False , podaci se ne šalju ako validacija sertifikata ne uspe.

Parametar ResposenSizeLimit je maksimalna veličina korisnog tereta (bajtova) koju uređaj prihvata kao odgovor sa servera. Ako je korisni teret odgovora veći od ove maksimalne veličine, komanda vraća grešku statusa. Poruka o grešci kaže da je prekoračena maksimalna veličina datoteke. Međutim, ovo nema uticaja na strani servera; server je primio i pravilno obradio zahtev.

Koristite parametar ResultBoodi da biste odlučili kako da formatirate telo HTTP odgovora sa servera u rezultatu komande. Imate tri opcije:

  • Ništa : Ne uključujte telo HTTP odgovora u rezultat komande.

  • Base64 : Base64 kodira telo pre nego što ga uključi u rezultat.

  • PlainTekt : Uključite telo u rezultat kao običan tekst. Ako odgovor sadrži slova koja se ne mogu štampati, komanda vraća grešku statusa sa porukom koja kaže da su naišli na podatke koji se ne mogu štampati.

Koristite parametar Timeout da podesite vremenski limit (sekunde). Ako zahtev nije završen tokom ovog perioda, API vraća grešku.

Unesite nosivost (podatke) odmah nakon što ste izdali komandu. Sve što unesete, uključujući i prelome linija, deo je korisnog tereta. Kada završite, završite sa prelomom reda ("\n") i posebnom linijom koja sadrži samo tačku iza koje sledi prelom reda (".\n"). Sada se komanda izvršava, a podaci se šalju na server.

Primeri

Telo poruke je JSON u oba ova primera. To može biti bilo koji format, u zavisnosti od očekivanog formata servisa koji prima poruke.

Primer KSNUMKS: Kontrola IoT uređaja pomoću HTTP hozzaszolas

Evo makro funkcije koja uključuje svetlo koje je povezano sa 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); } 

Isto možete uraditi u komandnoj liniji koristeći API:

 xcommand httpClient put zaglavlje: "content-type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

Primer KSNUMKS: Objavljivanje podataka u alat za nadgledanje koristeći HTTP Post

 xcommand HttpClient Post Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Korisnik je prijavio problem sa ovim sistemom","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Dodatne informacije

Pronađite više detalja o tome kako koristiti HTTP klijentske zahteve u vodiču za prilagođavanje. Izaberite najnoviju verziju.

Cisco podrška (TAC) ne podržava otklanjanje grešaka koda treće strane, uključujući makroe. Molimo proverite https://roomos.cisco.com ako vam je potrebna pomoć sa makroima i kodom treće strane.