Korišćenjem makroa možete da šaljete podatke na http(S) server kad god želite. Možete da izaberete koje podatke želite da šaljete i da ih strukturirate po želji. Radeći to na ovaj način, možete da prilagodite podatke već uspostavljenoj usluzi.

Mere bezbednosti:

  • Funkcija http(S) zahteva klijenta je podrazumevano onemogućena. Administrator sistema mora eksplicitno da omogući funkciju podešavanjem HttpClient > Mode na On ( xConfiguration HttpClient Mode: On).

  • Administrator sistema može sprečiti korišćenje http-a podešavanjem HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False).

  • Administrator sistema može da navede listu http(S) servera na koje je uređaju dozvoljeno da šalje podatke. (Pogledajte xCommand HttpClient Allow Hostname naredbe).

  • Broj istovremenih http(S) zahteva je ograničen.

Konfiguracije koje su navedene u ovom članku, dostupne su i sa veb interfejsa uređaja, kao i u API-ju. Komande su dostupne u API-ju. Pročitajte članak Napredne postavke za informacije o pristupu veb interfejsu i korišćenju API-ja.

Spisak dozvoljenih http(S) servera

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

  • 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 poslati http(S) zahteve samo serverima na listi. Ako je lista prazna, zahteve možete poslati na bilo koji http(S) server.

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

HTTPS bez validacije sertifikata

Prilikom slanja zahteva preko HTTPS-a, uređaj podrazumevano proverava sertifikat HTTPS servera. Ako se utvrdi da sertifikat HTTPS servera nije važeći, dobićete poruku o grešci. Uređaj ne šalje nikakve podatke na taj server.

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

Slanje http(s) zahteva

Kada je omogućena funkcija http(S) zahteva klijenta, možete da koristite sledeće komande za slanje zahteva na http(S) server. <method> je bilo 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 nije obavezno, ali možete da dodate čak 20 polja.

/ AllowInsecureHTTPS parametar ima efekat samo ako je administrator sistema dozvolio korišćenje HTTPS-a bez potvrde sertifikata servera. Ako je tako, možete poslati podatke na server bez potvrde sertifikata servera ako je parametar podešen na True. Ako izostavite parametar, ili ga postavite na False, podaci se ne šalju ako validacija sertifikata ne uspe.

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

Koristite ResultBody parametar za odlučivanje o formatu tela http odgovora sa servera u rezultatu naredbe. Imate tri opcije:

  • None: Nemojte uključivati telo http odgovora u rezultat naredbe.

  • Base64 Base64: kodirajte telo pre nego što ga uključite u rezultat.

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

Koristite Timeout parametar za podešavanje perioda isteka (sekunde). Ako zahtev nije završen u tom periodu, API vraća grešku.

Unesite korisni teret (podatke) odmah nakon izdavanja naredbe. Sve što unesete, uključujući i prekid linije, je deo tereta. Kada završite, završite sa prekidom linije ("\n") i zasebnom linijom koja sadrži samo period praćen prekidom linije (".\n"). Sada se komanda izvršava, a podaci se šalju na server.

Primeri

Telo poruke je JSON u oba ova primera. 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

Ovde 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 možete da uradite i u 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: Postavljanje podataka u alat za praćenje pomoću http posta

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

Saznajte više detalja o tome kako da koristite zahteve http klijenata u vodiču za prilagođavanje. Izaberite najnoviju verziju.

Cisco podrška (TAC) ne podržava otklanjanje grešaka u kodu treće strane, uključujući makro. Ako vam je potrebna pomoć oko makroa i koda treće strane, proverite zajednicu programera za saradnju Cisco. Takođe, na ovom sajtu postoje mnogi resursi programera i integratora.