Prin utilizarea macrocomenzilor, puteți trimite date către un server HTTP(S) ori de câte ori doriți. Puteți alege ce date să trimiteți și să le structurați după cum doriți. Prin aceasta, puteți să adaptați datele la un serviciu deja stabilit.

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) către care dispozitivului îi este permis să trimită datele. (Consultați comenzile XCommand HttpClient Allow Hostname.)

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

Configurațiile care sunt menționate în acest articol sunt disponibile atât din interfața web a dispozitivului, cât și din API. Comenzile sunt disponibile în API. Citiți articolul Setări avansate pentru informații despre cum se accesează interfața web și se utilizează API.

Listă de servere 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: <Expresie standard care potrivește numele gazdei sau adresa IP a serverului HTTP(S)>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

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

Dacă lista nu este goală, puteți trimite solicitări HTTP(S) numai către serverele din listă. Dacă lista este goală, puteți trimite solicitările către orice server HTTP(S).

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 prin 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 HTTP(S)

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 ClientHttp <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 de antet este opțională, dar aveți posibilitatea să adăugați 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 (Niciunul): nu includeți corpul răspunsului HTTP în rezultatul comenzii.

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

  • PlainText (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: comandă dispozitiv 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 = '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ă 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":"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 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 Comunitatea Cisco Collaboration Developer dacă aveți nevoie de ajutor în legătură cu macrocomenzile și codurile terțe. De asemenea, pe acest site se găsesc numeroase resurse pentru dezvoltatori și integratori.