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 HttpClient > Mode la On ( xConfiguration HttpClient Mode: On ).

  • Administratorul de sistem poate împiedica utilizarea HTTP setând HttpClient > Permitehttp 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 HttpClient > AllowInsecureHTTPS la Activat ( 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.