Med makroer kan du sende data til en HTTP (S) -server når du trenger det. Du har kontroll over hvilke data som sendes og hvordan de er organisert, noe som gjør det enkelt å tilpasse dataene til bruk med eksisterende tjenester.
Sikkerhetstiltak:
-
HTTP (S) -klientforespørselsfunksjonen er deaktivert som standard. En systemadministrator må eksplisitt aktivere funksjonen ved å sette til På (
XConfiguration HttpClient Mode: On). -
Systemadministratoren kan forhindre bruk av HTTP ved å sette
Client AllowHTTP: Fal se). -
Systemadministratoren kan angi en liste over HTTP (S) -servere som enheten har lov til å sende data til. (Se
XCommand HttpClient Tillat vertsnavn-kommandoer.) -
Antall samtidige HTTP (S) forespørsler er begrenset.
Konfigurasjonene referert til i denne artikkelen er tilgjengelige både fra nettgrensesnittet til enheten og i API. Kommandoer er tilgjengelige via API. Les artikkelen Avanserte innstillinger for informasjon om hvordan du får tilgang til webgrensesnittet og bruker API.
Liste over tillatte HTTP (S) -servere
Systemadministratoren kan bruke disse kommandoene til å sette opp og vedlikeholde en liste over opptil ti tillatte HTTP (S) -servere (verter):
-
XCommand HttpClient Tillat vertsnavn Legg til uttrykk:<Regular expression that matches the host name or IP address of the HTTP (S) server> -
XCommand HttpClient Tillat vertsnavn Fjern -
XCommand HttpClient Tillat vertsnavnliste -
XCommand HttpClient Tillat vertsnavn Fjern Id:<id of an entry in the list>
Hvis listen inneholder serveroppføringer, kan du bare sende HTTP (S) -forespørsler til disse serverne. Hvis listen er tom, kan du imidlertid sende forespørsler til en hvilken som helst HTTP (S) -server.
Kontrollen mot listen over tillatte servere utføres både ved bruk av usikker (HTTP) og sikker (HTTPS) overføring av data.
HTTPS uten sertifikatvalidering
Når du sender forespørsler over HTTPS, kontrollerer enheten sertifikatet til HTTPS-serveren som standard. Hvis HTTPS-serversertifikatet ikke er funnet å være gyldig, får du en feilmelding. Enheten sender ingen data til den serveren.
Vi anbefaler å bruke HTTPS med sertifikatvalidering. Hvis sertifikatvalidering ikke er mulig, kan systemadministratoren sette
På).
Dette tillater bruk av HTTPS uten å validere sertifikatet til serveren.
Sende HTTP (S) forespørsler
Når HTTP (S) -klientforespørselsfunksjonen er aktivert, kan du bruke følgende kommandoer til å sende forespørsler til en HTTP (S) -server.
<method>er enten
Post
, P
ut
,
Patch
,
G et eller
Delete
.
-
XCommand HttpClient [AllowInsecureHTTPS:] [Overskrift:] [ResponseSizeLimit:] [ResultBody:] [Tidsavbrudd:] Nettadresse:<Method><True/False> <Header text><Maximum response size><None/PlainText/Base64> <Timeout period><URL to send the request to>
Det er valgfritt å legge til topptekstfelt, og du kan legge til opptil 20 felt.
Parameteren
AllowInsecureHTTPS har bare effekt hvis systemadministratoren har tillatt bruk av HTTPS uten å validere sertifikatet til serveren. I så fall kan du sende data til tjeneren uten å validere serversertifikatet hvis parameteren er satt til
True
. Hvis du utelater parameteren, eller setter den til
Fal se
, sendes ikke data hvis sertifikatvalideringen mislykkes.
RespoSenSizeLimit-
parameteren er den maksimale nyttelaststørrelsen (byte) som enheten godtar som svar fra serveren. Hvis svarnyttelasten er større enn denne maksimale størrelsen, returnerer kommandoen en statusfeil. Feilmeldingen sier at maksimal filstørrelse overskrides. Dette har imidlertid ingen effekt på serversiden; tjeneren har mottatt og behandlet forespørselen riktig.
Bruk
parameteren
ResultBody til å bestemme hvordan du formaterer hoveddelen av HTTP-svaret fra serveren i kommandoresultatet. Du har tre alternativer:
-
Ingen: Ikke ta med hoveddelen av HTTP-svaret i kommandoresultatet. -
Base64: Base64 koder kroppen før den inkluderes i resultatet. -
klartekst: Inkluder brødteksten i resultatet som ren tekst. Hvis svaret inneholder bokstaver som ikke kan skrives ut, returnerer kommandoen en statusfeil med en melding om at det ble funnet ikke-utskrivbare data.
Bruk
parameteren T
imeout til å angi en tidsavbruddsperiode (sekunder). Hvis forespørselen ikke fullføres i løpet av denne perioden, returnerer API-en en feil.
Skriv inn nyttelasten (data) rett etter at du har utstedt kommandoen. Alt du skriver inn, inkludert linjeskift, er en del av nyttelasten. Når du er ferdig, avslutter du med et linjeskift («\ n») og en egen linje som bare inneholder en periode etterfulgt av et linjeskift (». \ n»). Nå utføres kommandoen, og dataene sendes til serveren.
Eksempler
Meldingens brødtekst er JSON i begge disse eksemplene. Det kan være hvilket som helst format, avhengig av forventet format for tjenesten som mottar meldingene.
Eksempel 1: IoT-enhetskontroll ved hjelp av HTTP Post
Her er en makrofunksjon som slår på et lys som er koblet til en 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); }
Du kan gjøre det samme på kommandolinjen ved hjelp av API:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Eksempel 2: Postere data til et overvåkingsverktøy ved hjelp av 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"} .
Ytterligere informasjon
Finn mer informasjon om hvordan du bruker HTTP-klientforespørsler i Tilpas ningsveiledningen . Velg den nyeste versjonen.
Cisco-støtte (TAC) støtter ikke feilsøking av tredjepartskode, inkludert makroer. Vennligst sjekk https://roomos.cisco.com hvis du trenger hjelp med makroer og tredjepartskode.