Cu macrocomenzi, aveți posibilitatea să trimiteți date către un server HTTPs oricând aveți nevoie. Aveți control asupra a ceea ce date este trimis și modul în care este organizat, ceea ce face simplu pentru a adapta datele pentru a fi utilizate 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 menționate în acest articol sunt disponibile atât de la interfața Web a dispozitivului și în 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.

Listă de servere HTTPs 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 permite Hostname adauga expresie: < expresie regulat care se potrivește numele de gazdă sau adresa de IP a serverului HTTPs >

  • xCommand HttpClient permite hostname clar

  • xCommand HttpClient permite lista de hostname

  • xCommand HttpClient permite hostname Remove ID: < ID-ul de o intrare din listă >

Dacă lista conține intrări de server, aveți posibilitatea să trimiteți numai solicitări HTTPs la acele servere. Cu toate acestea, dacă lista este goală, puteți trimite solicitări 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ă 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 HttpClient (ClientHttp) > AllowInsecureHTTPS (PermitereHTTPSNesecurizat) la valoarea On (Activat) ( 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 < metoda > [AllowInsecureHTTPS: < True/false >] [Antet: < antet text >] [ResponseSizeLimit: < dimensiune maximă răspuns >] [ResultBody: < none/PlainText/base64 >] [timeout: < perioadă de expirare >] URL: < URL pentru a trimite solicitarea către >

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:

  • None : nu includeți corpul răspunsului HTTP în rezultatul comenzii.

  • Base64 : base64 codifica organismul înainte de a include în rezultat.

  • PlainText : 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: control dispozitiv mulțime folosind HTTP post

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

 funcția hue_command (data) {var URL = "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state"; var anteturi = "Content-Type: Application/JSON"; var Command = ' {"on": True} '; xapi. Command (' HttpClient pune ', {' URL ': URL, ' header ': anteturi}, Command);} 

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

 xcommand HttpClient pune antet: "Content-Type: Application/JSON" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on": True}. 

Exemplul 2: înregistrarea datelor către 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": "sala de Consiliu etajul 4", "softwareVersion": "ce 9.6.0", "softwareReleaseDate": "2018-12-13", "monitoare video": "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. Vă rugăm să verificați https://roomos.cisco.com Dacă aveți nevoie de ajutor cu macrocomenzi și cod terț.