Ova značajka omogućuje slanje proizvoljnih HTTP(S) zahtjeva s ploče, sobe ili stolnog uređaja na HTTP(S) poslužitelj. Nadalje, uređaj prima odgovor koji poslužitelj šalje natrag. Uređaj podržava Post, Put, Patch, Get i Delete metode.
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
na On (xConfiguration HttpClient Mode: On
).Administrator sustava može spriječiti uporabu HTTP-a postavljanjem HttpClient
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
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.