Această caracteristică permite dispozitivelor din seriile Board, Desk sau Room să inițieze și să primească solicitări HTTPs cu un server HTTPs. Aceste dispozitive acceptă metode precum Postare, Punere, Corecție, Obținere și Ștergere, permițând diferite interacțiuni cu serverul.
Cu macrocomenzile, puteți trimite date către un server HTTPs oricând aveți nevoie. Aveți control asupra datelor trimise și a modului în care sunt organizate, simplificând adaptarea datelor pentru utilizarea 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
(Mod) la valoarea On (Activat) (xConfiguration HttpClient Mode: On
). -
Administratorul de sistem poate împiedica utilizarea HTTP setând
(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 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. 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 serverului HTTPs>
-
xCommand HttpClient permite ștergerea numelui de gazdă
-
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 numai solicitări HTTPs către acele servere. Cu toate acestea, dacă lista este goală, puteți trimite solicitări către orice server HTTP.
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ă validare certificat
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 xConfiguration HttpClient AllowInsecureHTTPS: On
). Acest lucru permite utilizarea HTTPS fără a valida certificatul serverului.
Trimiterea solicitărilor HTTPs
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 <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Text antet>] [ResponseSizeLimit: <Dimensiune maximă răspuns>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Perioada de expirare>] Url: <Adresa URL la care trebuie trimisă solicitarea>
Adăugarea câmpurilor 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:
-
Niciunul: Nu includeți corpul răspunsului HTTP în rezultatul comenzii
. -
Base64
: 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 utilizând HTTP Post
Iată o funcție de macrocomandă care aprinde o lumină conectată la un dispozitiv Philips Hue Bridge:
funcția hue_command(date) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; anteturi var = 'Content-Type: application/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 pe 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 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"}.
Informații 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. Verificați https://roomos.cisco.com dacă aveți nevoie de ajutor cu macrocomenzile și codul terță parte.