Pomoću makronaredbi možete slati podatke na HTTPs poslužitelj kad god zatrebate. Imate kontrolu nad time koji se podaci šalju i kako su organizirani, što olakšava prilagodbu podataka za korištenje s postojećim uslugama.

Sigurnosne mjere:

  • Značajka HTTPs zahtjeva klijenta onemogućena je prema zadanim postavkama. Administrator sustava mora eksplicitno omogućiti značajku postavljanjem HttpClient > Mode na Uključeno ( xConfiguration HttpClient Mode: Uključeno ).

  • Administrator sustava može spriječiti korištenje HTTP-a postavljanjem HttpClient > AllowHTTP na False ( xConfiguration HttpClient AllowHTTP: False ).

  • Administrator sustava može odrediti popis HTTPs poslužitelja na koje uređaj smije slati podatke. (Pogledajte naredbe xCommand HttpClient Allow Hostname .)

  • Broj istodobnih HTTPs zahtjeva je ograničen.

Konfiguracije navedene u ovom članku dostupne su na web sučelju uređaja i u API. Naredbe su dostupne putem API. Pročitajte članak Napredne postavke za informacije o tome kako pristupiti web sučelju i koristiti API.

Popis dopuštenih HTTPs poslužitelja

Administrator sustava može koristiti ove naredbe za postavljanje i održavanje popisa do deset dopuštenih HTTPs poslužitelja (hostova):

  • xCommand HttpClient Allow Hostname Add Expression: <Regularni izraz koji odgovara nazivu glavnog računala ili IP adresi HTTPs poslužitelja>

  • xCommand HttpClient Dopusti brisanje naziva glavnog računala

  • xCommand HttpClient Dopusti popis naziva hosta

  • xCommand HttpClient Allow Hostname Remove Id: <id unosa na popisu>

Ako popis sadrži unose poslužitelja, možete slati HTTPs zahtjeve samo tim poslužiteljima. Međutim, ako je popis prazan, možete slati zahtjeve bilo kojem HTTPs poslužitelju.

Provjera popisa dopuštenih poslužitelja provodi se i kada se koristi nesigurni (HTTP) i sigurni (HTTPS) prijenos podataka.

HTTPS bez provjere valjanosti certifikata

Prilikom slanja zahtjeva putem HTTPS-a, uređaj prema zadanim postavkama provjerava certifikat HTTPS poslužitelja. Ako se utvrdi da certifikat HTTPS poslužitelja nije valjan, dobit ćete poruku o pogrešci. Uređaj ne šalje nikakve podatke tom poslužitelju.

Preporučujemo korištenje HTTPS-a s provjerom valjanosti certifikata. Ako provjera valjanosti certifikata nije moguća, administrator sustava može postaviti HttpClient > AllowInsecureHTTPS na Uključeno ( xConfiguration HttpClient AllowInsecureHTTPS: Uključeno ). To omogućuje korištenje HTTPS-a bez provjere valjanosti certifikata poslužitelja.

Slanje HTTPs zahtjeva

Nakon što je značajka HTTPs zahtjeva klijenta omogućena, možete koristiti sljedeće naredbe za slanje zahtjeva HTTPs poslužitelju. <metoda> je ili Post , Put , Zakrpi , Preuzmi ili Izbriši .

  • xCommand HttpClient <Metoda> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximum response size>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <URL za slanje zahtjeva>

Dodavanje polja zaglavlja nije obavezno i ​​možete dodati do 20 polja.

Parametar AllowInsecureHTTPS ima učinak samo ako je administrator sustava dopustio upotrebu HTTPS-a bez provjere valjanosti certifikata poslužitelja. Ako je tako, možete poslati podatke na poslužitelj bez provjere valjanosti certifikata poslužitelja ako je parametar postavljen na True . Ako izostavite parametar ili ga postavite na False , podaci se ne šalju ako provjera valjanosti certifikata ne uspije.

Parametar ResposenSizeLimit maksimalna je veličina korisnog opterećenja (u bajtovima) koju uređaj prihvaća kao odgovor poslužitelja. Ako je korisni teret odgovora veći od ove maksimalne veličine, naredba vraća pogrešku statusa. Poruka o pogrešci kaže da je maksimalna veličina datoteke premašena. Međutim, to nema učinka na strani poslužitelja; poslužitelj je primio i pravilno obradio zahtjev.

Koristite parametar ResultBody da odlučite kako formatirati tijelo HTTP odgovora s poslužitelja u rezultatu naredbe. Imate tri opcije:

  • Ništa : Nemojte uključivati ​​tijelo HTTP odgovora u rezultat naredbe.

  • Base64 : Base64 kodira tijelo prije nego što ga uključi u rezultat.

  • PlainText : Uključite tijelo u rezultat kao čisti tekst. Ako odgovor sadrži slova koja se ne mogu ispisivati, naredba vraća statusnu pogrešku s porukom da je naišlo na podatke koji se ne mogu ispisati.

Upotrijebite parametar Timeout za postavljanje vremenskog ograničenja (u sekundama). Ako se zahtjev ne izvrši tijekom tog razdoblja, API vraća pogrešku.

Unesite korisni teret (podatke) izravno nakon što ste izdali naredbu. Sve što unesete, uključujući prijelome redaka, dio je korisnog opterećenja. Kada završite, završite prijelomom retka ("\n") i zasebnim retkom koji sadrži samo točku nakon koje slijedi prijelom retka (".\n"). Sada je naredba izvršena, a podaci se šalju na poslužitelj.

Primjeri

Tijelo poruke je JSON u oba ova primjera. To može biti bilo koji format, ovisno o očekivanom formatu usluge koja prima poruke.

Primjer 1: Kontrola IoT uređaja pomoću HTTP Post-a

Ovdje je makro funkcija koja uključuje svjetlo koje je spojeno na Philips Hue Bridge:

 funkcija 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': zaglavlja }, naredba); } 

Isto možete učiniti u naredbenom retku koristeći API:

 xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

Primjer 2: Objavljivanje podataka u alatu za nadzor pomoću HTTP Posta

 xcommand HttpClient Zaglavlje posta: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Korisnik je prijavio problem s ovim sustavom","systemName":"BoardRoom 4th floor","softwareVersion": "ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Daljnje informacije

Pronađite više pojedinosti o tome kako koristiti zahtjeve HTTP klijenta u Vodič za prilagodbu . Odaberite najnoviju verziju.

Cisco podrška (TAC) ne podržava otklanjanje pogrešaka koda trećih strana, uključujući makronaredbe. Molimo provjerite https://roomos.cisco.com ako trebate pomoć s makronaredbama i kodom treće strane.