Pomoću makroa možete da šaljete podatke na HTTP(S) server kad god poželite. Možete odabrati podatke koje ćete slati i strukturisati ih po svojoj vrednosti. Na ovaj način možete da prilagodite podatke već uspostavljenoj usluzi.

Mere bezbednosti:

  • Funkcija zahteva HTTP-a za klijente je podrazumevano onemogućena. Administrator sistema mora izričito da omogući funkciju postavljanjem httpClient > režima na on ( xConfiguration HttpClient Mode: On ).

  • Administrator sistema može da spreči upotrebu HTTP-a postavljanjem httpClient > AllowHTTP na vrednost False ( xConfiguration HttpClient AllowHTTP: False ).

  • Administrator sistema može da navede listu HTTP(S) servera kojima je uređaju dozvoljeno da šalje podatke. (Vidite xCommand HttpClient Allow Hostname komande.)

  • Broj uporednih HTTP(S) zahteva je ograničen.

Konfiguracije koje se upućuju na ovaj članak dostupne su i na Veb interfejsu uređaja i u API-u. Komande su dostupne u API-u. Pročitajte članak Više opcija za postavke da biste dobili informacije o tome kako da pristupite Veb interfejsu i koristite API.

Lista dozvoljenih HTTP servera

Administrator sistema može da koristi ove komande za podešavanje i održavanje liste do deset dozvoljenih HTTP(S) servera (domaćina):

  • 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>

Ako lista nije prazna, možete da pošaljete HTTP zahteve samo serverima sa liste. Ako je lista prazna, zahteve možete poslati bilo kom HTTP serveru.

Provera u odnosu na listu dozvoljenih servera vrši se i kada se koristi nesiguran (HTTP) i bezbedan (HTTPS) prenos podataka.

HTTPS bez provere valjanosti certifikata

Prilikom slanja zahteva preko HTTPS-a, uređaj podrazumevano proverava certifikat HTTPS servera. Ako nije utvrđeno da je certifikat HTTPS servera važeći, dobijate poruku o grešci. Uređaj ne šalje nikakve podatke tom serveru.

Preporučujemo da koristite HTTPS sa proverom valjanosti certifikata. Ako provera valjanosti certifikata nije moguća, administrator sistema može da podesi httpClient > AllowInsecureHTTPS na "On" ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Ovo omogućava korišćenje HTTPS-a bez provere valjanosti certifikata servera.

Slanje HTTP(e) zahteva

Kada je omogućena funkcija zahteva HTTP-a za klijente, možete da koristite sledeće komande za slanje zahteva HTTP-jem na HTTP(S) server. <method> je ili Post , Put , Patch , Get , ili 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>

Dodavanje polja zaglavlja je opcionalno, ali možete dodati čak 20 polja.

/ AllowInsecureHTTPS parametar ima efekat samo ako je administrator sistema dozvolio korišćenje HTTPS-a bez provere valjanosti certifikata servera. Ako je tako, možete da pošaljete podatke serveru bez provere valjanosti certifikata servera ako je parametar podešen na True . Ako izostavite parametar ili ga podesite na False , podaci se ne šalju ako provera valjanosti certifikata ne uspe.

/ ResposenSizeLimit parametar je maksimalna veličina opterećenja (bajtova) koju uređaj prihvata kao odgovor servera. Ako je tovar odziva veći od ove maksimalne veličine, komanda vraća grešku u statusu. Poruka o grešci kaže da je prekoračjena maksimalna veličina datoteke. Međutim, to nema uticaja na stranu servera; server je primio i ispravno obradio zahtev.

Koristite ResultBody parametra da biste odlučili kako da oblikujete telo HTTP odgovora sa servera u komandnom rezultatu. Imate tri opcije:

  • None : Nemojte uključivati telo HTTP odgovora u rezultat komande.

  • Base64 : Base64 kodira telo pre nego što ga ukljuci u rezultat.

  • PlainText : Uključite telo u rezultat kao čisti tekst. Ako odgovor sadrži slova koja se ne mogu odštampati, komanda vraća grešku u statusu sa porukom u kojoj se navodi da su podaci koji se ne mogu štampati naišli na njih.

Koristite Timeout parametra za podešavanje vremenskog perioda (sekundi). Ako zahtev nije dovršen tokom ovog perioda, API vraća grešku.

Unesite tovar (podatke) odmah nakon izdavanja komande. Sve što unesete, uključujući i prelome redova, deo je tovara. Kada završite, završite sa prelomom reda ("\n") i zasebnim redom koji sadrži samo tačku praćenu prelomom reda (".\n"). Sada je komanda izvršena i podaci se šalju serveru.

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 1: Kontrola IoT uređaja pomoću HTTP posta

Ovo je makro funkcija 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 headers = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, command); } 
   

Isto to možete da uradite i na komandnoj liniji pomoću 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: Objavljivanje podataka u alatki za nadgledanje pomoću HTTP objave


     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"} . 
   

Dodatne informacije

Više detalja o korišćenju HTTP zahteva klijenata potražite u vodiču za prilagođavanje . Odaberite najnoviju verziju.

Cisco podrška (TAC) ne podržava otklanjanje grešaka u kodu nezavisnih proizvođača, uključujući makroe. Proverite zajednicu Cisco Collaboration Developer ako vam je potrebna pomoć oko makroa i koda nezavisnih proizvođača. Takođe, na ovom sajtu ima mnogo resursa za programere i integratore.