Cu macrocomenzi, puteți trimite date către un server HTTPs oricând aveți nevoie. Aveți control asupra datelor trimise și asupra modului în care sunt organizate, simplificând adaptarea datelor pentru utilizare cu serviciile existente.

Măsuri de securitate:

  • Caracteristica solicitare client HTTP(S) este dezactivată în mod implicit. Un administrator de sistem trebuie să permită în mod explicit caracteristica, setând HttpClient (ClientHttp) > Mode (Mod) la valoarea On (Activat) (xConfiguration HttpClient Mode: On).

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

  • Administratorul de sistem poate specifica o listă de servere HTTP(S) la care pot fi trimise datele. (Consultați comenzile XCommand HttpClient Allow Hostname.)

  • Numărul de solicitări simultane HTTP(S) este limitat.

Configurațiile la care se face referire în acest articol sunt disponibile atât din interfața web a dispozitivului, cât și în API. Comenzile sunt disponibile prin API. Citiți articolul Setările avansatepentru informații despre cum să accesați interfața web și să utilizați API.

Lista serverelor HTTP 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: <Expresie regulată care se potrivește cu numele gazdei sau adresa IP a serverului HTTPs>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Permite lista de nume de gazdă

  • xCommand HttpClient Allow Hostname Remove Id: <id-ul unei intrări din listă>

Dacă lista conține intrări de server, puteți trimite cereri HTTP doar către acele servere. Cu toate acestea, dacă lista este goală, puteți trimite cereri către orice server HTTPs.

Verificarea prin comparație cu lista de servere permise se efectuează atât atunci când se utilizează transferul nesecurizat (HTTP), cât și cel securizat (HTTPS) de date.

HTTPS fără validarea certificatului

La trimiterea solicitărilor prin HTTPS, dispozitivul verifică implicit certificatul serverului HTTPS. Dacă se descoperă că certificatul serverului HTTPS nu este valid, primiți un mesaj de eroare. Dispozitivul nu trimite nicio dată către serverul respectiv.

Vă recomandăm să utilizați HTTPS cu validarea certificatului. Dacă validarea certificatului nu este posibilă, administratorul de sistem poate seta HttpClient (ClientHttp) > AllowInsecureHTTPS (PermitereHTTPSNesecurizat) la valoarea On (Activat) ( xConfiguration HttpClient AllowInsecureHTTPS: On). Acest lucru permite utilizarea HTTPS fără a valida certificatul serverului.

Se trimite solicitări HTTP

După activarea caracteristicii solicitare client HTTP(S), aveți posibilitatea să utilizați următoarele comenzi pentru a trimite solicitări către un server HTTP(S). < metoda> poate fi Post (Postare), Put (Plasare), Patch (Corecție) Get (Obținere) sau Delete (Ștergere).

  • xCommand HttpClient <Metodă> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout period>] Url: <URL către care trimiteți solicitarea>

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

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

Parametrul ResposenSizeLimit (LimităRăspunsșiDimensiune) este dimensiunea maximă a sarcinii utile (în octeți) pe care dispozitivul o acceptă ca răspuns de la server. Dacă sarcina utilă de răspuns 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 nici un efect pe partea de server; serverul a primit și a procesat cererea în mod corespunzător.

Utilizați parametrul ResultBody (CorpRezultat) pentru a decide cum să formatați corpul răspunsului HTTP de la server în rezultatul comenzii. Aveți trei opțiuni:

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

  • Baza 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 ce nu pot fi imprimate, comanda returnează o eroare de stare cu un mesaj care spune că s-au întâlnit date ce nu pot fi imprimate.

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 (datele) imediat după ce ați lansat comanda. Tot ceea ce introduceți, inclusiv sfârșitul de linie, face parte din sarcină. Când ați terminat, terminați cu un sfârșit de linie („\n”) și o linie separată care conține doar un punct urmat de un sfârșit de linie („.\n”). Acum, comanda este executată, și datele sunt trimise la server.

Exemple

Corpul mesajului este în format JSON în ambele exemple. Poate fi orice format, în funcție de formatul așteptat al serviciului care recepționează mesajele.

Exemplul 1: controlul dispozitivului IoT folosind HTTP Post

Iată o funcție de macrocomandă care aprinde o lumină conectată la un dispozitiv Philips Hue Bridge:

 function hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = „Tip de conținut: aplicație/json”; comanda var = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, command); } 

Puteți face același lucru în linia de comandă folosind API:

 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":"Un utilizator a raportat o problemă cu acest sistem","systemName":"BoardRoom etajul 4","softwareVersion": "ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Informatii suplimentare

Găsiți mai multe detalii despre modul de utilizare a solicitărilor client HTTP în Ghidul de personalizare. Alegeți cea mai recentă versiune.

Asistența Cisco (TAC) nu acceptă depanarea codurilor terțe, inclusiv a macrocomenzilor. Vă rugăm să verificați https://roomos.cisco.com dacă aveți nevoie de ajutor cu macrocomenzi și coduri terță parte.