Pomoću makroa možete slati podatke na HTTP(S) poslužitelj kad god želite. Možete odabrati koje podatke želite slati i strukturirati ih kako želite. Radeći to na ovaj način, možete prilagoditi podatke već uspostavljenoj usluzi.

Mjere sigurnosti:

  • Značajka zahtjeva HTTP(S) klijenta je onemogućena prema zadanim postavkama. Administrator sustava mora eksplicitno omogućiti značajku postavljanjem HttpClient > Mode na On ( xConfiguration HttpClient Mode: On).

  • Administrator sustava može spriječiti uporabu HTTP-a postavljanjem HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False).

  • Administrator sustava može odrediti popis HTTP(S) poslužitelja na koje uređaj smije slati podatke. (Pogledajte xCommand HttpClient Allow Hostname naredbe).

  • Broj istovremenih HTTP(S) zahtjeva je ograničen.

Konfiguracije koje su navedene u ovom članku dostupne su i na web sučelju uređaja i u API-ju. Naredbe su dostupne u API-ju. Pročitajte članak Napredne postavke za informacije o pristupu web-sučelju i uporabi API-ja.

Popis dopuštenih HTTP(S) poslužitelja

Administrator sustava može koristiti ove naredbe za postavljanje i održavanje popisa do deset dopuštenih HTTP(S) poslužitelja (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 popis nije prazan, HTTP(S) zahtjeve možete slati samo poslužiteljima na popisu. Ako je popis prazan, zahtjeve možete poslati na bilo koji HTTP(S) poslužitelj.

Provjera u odnosu na popis dopuštenih poslužitelja provodi se i kod korištenja nesigurnog (HTTP) i sigurnog (HTTPS) prijenosa podataka.

HTTPS bez potvrde valjanosti certifikata

Prilikom slanja zahtjeva preko HTTPS-a uređaj prema zadanim postavkama provjerava certifikat HTTPS poslužitelja. Ako se utvrdi da potvrda HTTPS poslužitelja nije valjana, dobit ćete poruku o pogrešci. Uređaj ne šalje nikakve podatke na taj poslužitelj.

Preporučujemo korištenje HTTPS-a s potvrdom valjanosti certifikata. Ako potvrda nije moguća, administrator sustava može postaviti HttpClient > AllowInsecureHTTPS na On ( xConfiguration HttpClient AllowInsecureHTTPS: On). To omogućuje korištenje HTTPS-a bez potvrde certifikata poslužitelja.

Slanje http(s) zahtjeva

Nakon što je omogućena značajka zahtjeva HTTP(S) klijenta, možete koristiti sljedeće naredbe za slanje zahtjeva na HTTP(S) poslužitelj. <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 dodati čak 20 polja.

The AllowInsecureHTTPS parametar ima učinak samo ako je administrator sustava dopustio korištenje HTTPS-a bez potvrde certifikata poslužitelja. Ako je tako, možete poslati podatke na poslužitelj bez potvrde sertifikata poslužitelja ako je parametar postavljen na True. Ako izostavite parametar ili ga postavite na False, podaci se ne šalju ako potvrda ne uspije.

The ResposenSizeLimit parametar je maksimalna veličina korisnog tereta (bajtova) koju uređaj prihvaća kao odgovor poslužitelja. Ako je korisni teret odgovora veći od ove maksimalne veličine, naredba vraća pogrešku statusa. Poruka o pogrešci kaže da je maksimalna veličina datoteke premašena. Međutim, to ne utječe na stranu poslužitelja; poslužitelj je primio i pravilno obradio zahtjev.

Koristite ResultBody parametar za odlučivanje o oblikovanju tijela HTTP odgovora s poslužitelja u rezultatu naredbe. Imate tri mogućnosti:

  • None: Nemojte uključivati tijelo HTTP odgovora u rezultat naredbe.

  • Base64: Base64 kodirajte tijelo prije nego što ga uključite u rezultat.

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

Koristite Timeout parametar za postavljanje razdoblja isteka (sekunde). Ako zahtjev nije dovršen u tom razdoblju, API vraća pogrešku.

Unesite korisni teret (podatke) odmah nakon izdavanja naredbe. Sve što unesete, uključujući i prekid linije, je dio tereta. Kada završite, završite s prekidom linije ("\n") i zasebnom linijom koja sadrži samo razdoblje nakon kojeg slijedi prekid linije (".\n"). Sada se izvršava naredba i podaci se šalju na poslužitelj.

Primjeri

Tijelo poruke je JSON u oba ova primjera. To može biti bilo koji format, ovisno o očekivanom formatu usluge koja prima poruke.

Primjer 1: Kontrola IoT uređaja pomoću HTTP Posta

Ovdje je makro funkcija koja uključuje svjetlo koje je povezano s Philipsovim mostom za nijanse:

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 učiniti u naredbenom retku 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}
.

Primjer 2: Objavljivanje 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

Više pojedinosti o korištenju zahtjeva HTTP klijenata potražite u Prilagodbenom priručniku. Odaberite najnoviju verziju.

Cisco podrška (TAC) ne podržava otklanjanje grešaka u kodu treće strane, uključujući makro. Ako trebate pomoć s makronaredbama i kodom treće strane, provjerite zajednicu razvojnih programera za suradnju Cisco. Također, postoje mnogi razvojni i integratorski resursi na ovoj stranici.