Această caracteristică face posibilă trimiterea de solicitări HTTP(S) arbitrare de la un dispozitiv de bord, cameră sau birou la un server HTTP(S). În plus, dispozitivul primește răspunsul pe care serverul îl trimite înapoi. Dispozitivul acceptă metodele Post, Put, Patch, Get și Delete.
Utilizând macrocomenzi, puteți trimite date către un server HTTP(S) oricând doriți. Puteți alege ce date să trimiteți și să le structurați după cum doriți. Procedând astfel, puteți adapta datele la un serviciu deja stabilit.
Măsuri de securitate:
Caracteristica de solicitare client HTTP(S) este dezactivată în mod implicit. Un administrator de sistem trebuie să activeze în mod explicit caracteristica setând
la On (xConfiguration HttpClient Mode: On
).Administratorul de sistem poate împiedica utilizarea HTTP setând
la False (xConfiguration HttpClient AllowHTTP: False
).Administratorul de sistem poate specifica o listă de servere HTTP(S) la care dispozitivul are voie să trimită date. (A se vedea
xCommand HttpClient Allow Hostname
comenzi.)Numărul de solicitări HTTP(S) concurente este limitat.
Configurațiile menționate în acest articol, sunt disponibile atât din interfața web a dispozitivului, cât și în API. Comenzile sunt disponibile în API. Citiți articolul Setări avansate pentru informații despre cum să accesați interfața web și să utilizați API-ul.
Lista serverelor HTTP(S) permise
Administratorul de sistem poate utiliza aceste comenzi pentru a configura și a menține o listă de până la zece servere HTTP(S) permise (gazde):
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>
Dacă lista nu este goală, puteți trimite solicitări HTTP(S) numai la serverele din listă. Dacă lista este goală, puteți trimite solicitările către orice server HTTP(S).
Verificarea împotriva listei de servere permise se efectuează atât atunci când se utilizează transferul de date nesigur (HTTP), cât și transferul securizat (HTTPS).
HTTPS fără validarea certificatului
Atunci când trimiteți solicitări prin HTTPS, dispozitivul verifică în mod implicit certificatul serverului HTTPS. Dacă certificatul de server HTTPS nu este găsit a fi valid, primiți un mesaj de eroare. Dispozitivul nu trimite date către acel server.
Vă recomandăm să utilizați HTTPS cu validarea certificatului. Dacă validarea certificatului nu este posibilă, administratorul de sistem poate seta
xConfiguration HttpClient AllowInsecureHTTPS: On
). Acest lucru permite utilizarea HTTPS fără validarea certificatului serverului.
Trimiterea solicitărilor HTTP(e)
Odată ce caracteristica de solicitare client HTTP(S) este activată, puteți utiliza următoarele comenzi pentru a trimite solicitări către un server HTTP(S).
<method>
este fie
Post
,
Put
,
Patch
,
Get
sau
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>
Adăugarea câmpurilor antet este opțională, dar puteți adăuga până la 20 de câmpuri.
Cel
AllowInsecureHTTPS
parametrul are un efect numai dacă administratorul de sistem a permis utilizarea HTTPS fără validarea certificatului serverului. Dacă da, puteți trimite date către server fără a valida certificatul de server dacă parametrul este setat la
True
. Dacă lăsați parametrul sau îl setați la
False
, datele nu sunt trimise dacă validarea certificatului nu reușește.
Cel
ResposenSizeLimit
parametrul este dimensiunea maximă a sarcinii utile (octeți) pe care dispozitivul o acceptă ca răspuns de la server. Dacă sarcina utilă a răspunsului este mai mare decât această dimensiune maximă, comanda returnează o eroare de stare. Mesajul de eroare spune că dimensiunea maximă a fișierului este depășită. Cu toate acestea, acest lucru nu are niciun efect pe partea de server; serverul a primit și procesat cererea în mod corespunzător.
Utilizați
ResultBody
parametru pentru a decide cum se formatează corpul răspunsului HTTP de la server în rezultatul comenzii. Aveți trei opțiuni:
None
: Nu includeți corpul răspunsului HTTP în rezultatul comenzii.Base64
: Base64 codifica corpul înainte de a-l include în rezultat.PlainText
: Includeți corpul în rezultat ca text simplu. Dacă răspunsul conține litere care nu pot fi tipărite, comanda returnează o eroare de stare cu un mesaj care spune că s-au întâlnit date care nu pot fi tipărite.
Utilizați
Timeout
parametru pentru a seta o perioadă de expirare (secunde). Dacă solicitarea nu este finalizată în această perioadă, API returnează o eroare.
Introduceți sarcina utilă (date) imediat după ce ați emis comanda. Tot ceea ce introduceți, inclusiv pauzele de linie, face parte din sarcina utilă. Când ați terminat, terminați cu un sfârșit de linie ("\n") și o linie separată care conține doar o perioadă urmată de un sfârșit de linie (".\n"). Acum comanda este executată, iar datele sunt trimise la server.
Exemple
Corpul mesajului este JSON în ambele exemple. Ar putea fi orice format, în funcție de formatul așteptat al serviciului care primește mesajele.
Exemplul 1: Controlul dispozitivului IoT utilizând HTTP Post
Iată o funcție de macrocomandă care activează o lumină care este conectată la un pod Philips Hue Bridge:
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); }
Puteți face același lucru în linia de comandă utilizând API-ul:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Exemplul 2: Postarea datelor într-un instrument de monitorizare utilizând HTTP Post
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"} .
Informații suplimentare
Găsiți mai multe detalii despre cum să utilizați solicitările de client HTTP în Ghidul de particularizare . Alegeți cea mai recentă versiune.
Asistența Cisco (TAC) nu acceptă depanarea codului terță parte, inclusiv a macrocomenzilor. Vă rugăm să verificați comunitatea Cisco Collaboration Developer dacă aveți nevoie de ajutor cu macrocomenzile și codul terță parte. De asemenea, există multe resurse de dezvoltator și integrator pe acest site.