Cu macrocomenzile, puteți trimite date către un server HTTP(S) oricând aveți nevoie. Aveți control asupra datelor trimise și asupra modului în care sunt organizate, facilitând adaptarea datelor pentru a fi utilizate cu serviciile existente.

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 această caracteristică setând HttpClient > Mod pe Activat ( xConfiguration HttpClient Mode: Activată ).

  • Administratorul de sistem poate împiedica utilizarea HTTP setând HttpClient > AllowHTTP la valoarea False ( xConfiguration HttpClient AllowHTTP: Fals ).

  • Administratorul de sistem poate specifica o listă de servere HTTP(S) către care dispozitivul are voie să trimită date. (Consultați comenzile xCommand HttpClient Allow Hostname .)

  • 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 din API. Comenzile sunt disponibile prin intermediul API-ului. 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:

  • xCommand HttpClient permite ștergerea numelui gazdei

  • Listă de permitere nume de gazdă pentru xCommand HttpClient

  • xCommand HttpClient Allow Hostname Remove Id:

Dacă lista conține intrări de server, puteți trimite numai solicitări HTTP(S) către serverele respective. Cu toate acestea, dacă lista este goală, puteți trimite solicitări 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ă validare certificat

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 valoarea On ( xConfiguration HttpClient AllowInsecureHTTPS: Activată ). Acest lucru permite utilizarea HTTPS fără validarea certificatului serverului.

Se trimite solicitările HTTP(S)

După activarea funcției solicitare client HTTP(S), puteți utiliza următoarele comenzi pentru a trimite solicitări către un server HTTP(S). este fie Post, Put, Patch, Get sau Delete.

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Antet: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] Url:

Adăugarea câmpurilor de antet este opțională și puteți adăuga până la 20 de câmpuri.

Parametrul AllowInsecureHTTPS are efect numai dacă administratorul de sistem a permis utilizarea HTTPS fără a valida certificatul serverului. Dacă da, puteți trimite date către server fără a valida certificatul serverului dacă parametrul este setat la valoarea Adevărat . Dacă ignorați parametrul sau îl setați la Fals, datele nu sunt trimise dacă validarea certificatului nu reușește.

Parametrul ResposenSizeLimit (LimităDimensiuneResposen ) este dimensiunea maximă a sarcinii utile (biț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 parametrul ResultBody pentru a decide cum să formatați corpul răspunsului HTTP de la server în rezultatul comenzii. Aveți trei opțiuni:

  • Niciunul : Nu includeți corpul răspunsului HTTP în rezultatul comenzii.

  • Bază64: Base64 codifică corpul înainte de a-l include în rezultat.

  • Text simplu: 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 parametrul Timeout pentru a seta o perioadă de expirare (în 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:

 funcție hue_command(date) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Tip conținut: application/json'; var command = '{"on":true}'; xapi.command ('HttpClient Put', { 'Url': url, „Antet”: antetele }, comandă); } 

Puteți face același lucru în linia de comandă utilizând API-ul:

 xcommand HttpClient Put Header: "Tip conținut: 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: "Tip conținut: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Un utilizator a raportat o problemă cu acest sistem","systemName":"BoardRoom etajul 4","softwareVersion":"ce 9.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. Verificați https://roomos.cisco.com dacă aveți nevoie de ajutor cu macrocomenzile și codurile terțe.