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 zahteva klijenta HTTP je podrazumevano onemogućena. Sistemski administrator mora eksplicitno omogućiti ovu funkciju postavljanjem na On (
kConfiguration HttpClient Mode: On). -
Administrator sistema može da spreči upotrebu HTTP-a postavljanjem HttpClient False ( kConfiguration HttpClient AllovHTTP: False
). -
Administrator sistema može da odredi listu HTTP servera na koje je uređaju dozvoljeno da šalje podatke. (Pogledajte komande
xCommand HttpClient Allow Hostname.) -
Broj istovremenih HTTPs zahteva je ograničen.
Konfiguracije navedene u ovom članku dostupne su i sa veb interfejsa uređaja i u API. Komande su dostupne preko API. Pročitajte članak Napredna podešavanja za informacije o tome kako pristupiti veb interfejsu i koristiti API.
Lista dozvoljenih HTTP servera
Administrator sistema može da koristi ove komande za podešavanje i održavanje liste do deset dozvoljenih HTTP servera (domaćina):
-
kCommand HttpClient Dozvoli dodavanje imena hosta: <Regularni izraz koji odgovara imenu hosta ili IP adresi HTTP servera> -
kCommand HttpClient Dozvoli ime domaćina jasno -
kCommand HttpClient Dozvoli listu imena domaćina -
xCommand HttpClient Dozvoli ime domaćina Ukloni 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 poslati zahteve na bilo koji HTTP server.
Provera na listi 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 važeći, dobićete 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 na On ( kConfiguration HttpClient AllovInsecureHTTPS: On ). Ovo omogućava korišćenje HTTPS-a bez potvrđivanja sertifikata servera.
Slanje HTTPs zahteva
Kada je omogućena funkcija zahteva klijenta HTTP-a, možete koristiti sledeće komande za slanje zahteva na HTTP server. <method> is either POST , PUT,Patch,Get , or Delete.
-
kCommand HttpClient <metoda> [AllovInsecureHTTPS: <Tačno / Lažno>] [Zaglavlje: <Tekst zaglavlja>] [ResponseSizeLimit: <Maksimalna veličina odgovora>] [ResultBodi: <None/PlainTekt/Base64>] [Timeout: <Vremenski limit>] URL: <URL za slanje zahteva>
Dodavanje polja zaglavlja nije obavezno, a možete dodati do 20 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 efekta na strani servera; Server je primio i pravilno obradio zahtev.
Koristite parametar ResultBodi da biste odlučili kako formatirati telo HTTP odgovora sa servera u rezultatu komande. Imate tri opcije:
-
Ništa: Ne uključite 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 statusnu grešku sa porukom koja kaže da su naišli na podatke koji se ne mogu štampati.
Koristite parametar Timeout da podesite vremenski period (sekunde). Ako zahtev nije završen tokom ovog perioda, API vraća grešku.
Unesite nosivost (podatke) neposredno 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 praćenu prelomom 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 usluge koja prima poruke.
Primer KSNUMKS: Kontrola IoT uređaja koristeći HTTP POST
Evo makro funkcije koja uključuje svetlo koje je povezano sa Philips Hue mostom:
function hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var zaglavlja = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient PUT', { 'url': url, 'Header': zaglavlja }, komanda); }
Možete da uradite isto 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.