Denne funksjonen gjør det mulig å sende vilkårlige HTTP(S)-forespørsler fra en tavle-, rom- eller bordenhet til en HTTP(S)-server. Videre mottar enheten svaret som serveren sender tilbake. Enheten støtter metodene Post, Put, Patch, Get og Delete.
Ved hjelp av makroer kan du sende data til en HTTP(S)-server når du vil. Du kan velge hvilke data du vil sende, og strukturere dem etter behov. Ved å gjøre det på denne måten kan du tilpasse dataene til en allerede etablert tjeneste.
Sikkerhetstiltak:
Funksjonen for klientforespørsel for HTTP(S) er deaktivert som standard. En systemansvarlig må eksplisitt aktivere funksjonen ved å sette
til På (xConfiguration HttpClient Mode: On
).Systemansvarlig kan forhindre bruk av HTTP ved å sette
to False (xConfiguration HttpClient AllowHTTP: False
).Systemansvarlig kan angi en liste over HTTP(S)-servere som enheten har tillatelse til å sende data til. (Se
xCommand HttpClient Allow Hostname
kommandoer.)Antall samtidige HTTP(S)-forespørsler er begrenset.
Konfigurasjonene som det refereres til i denne artikkelen, er tilgjengelige både fra enhetens webgrensesnitt og i APIen. Kommandoer er tilgjengelige i APIen. Les artikkelen Avanserte innstillinger for å få informasjon om hvordan du får tilgang til webgrensesnittet og bruker API-et.
Liste over tillatte HTTP(S)-servere
Systemansvarlig kan bruke disse kommandoene til å konfigurere og vedlikeholde en liste over opptil ti tillatte HTTP(S)-servere (verter):
xCommand HttpClient Allow Hostname Add Expression: <Regular expression that matches the host name or IP address of the HTTP(S) server>
xCommand HttpClient Allow Hostname Clear
xCommand HttpClient Allow Hostname List
xCommand HttpClient Allow Hostname Remove Id: <id of an entry in the list>
Hvis listen ikke er tom, kan du bare sende HTTP(S)-forespørsler til serverne i listen. Hvis listen er tom, kan du sende forespørslene 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 gyldig, får du en feilmelding. Enheten sender ingen data til den serveren.
Vi anbefaler at du bruker HTTPS med sertifikatvalidering. Hvis sertifikatvalidering ikke er mulig, kan systemansvarlig sette
xConfiguration HttpClient AllowInsecureHTTPS: On
). Dette tillater bruk av HTTPS uten å validere sertifikatet til serveren.
Sende HTTP(er)-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
,
Put
,
Patch
,
Get
, eller
Delete
.
xCommand HttpClient <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>
Det er valgfritt å legge til overskriftsfelt, men du kan legge til så mange som 20 felt.
AllowInsecureHTTPS
-parameteren virker bare hvis systemansvarlig har tillatt bruk av HTTPS uten å validere sertifikatet for serveren. I så fall kan du sende data til serveren uten å validere serversertifikatet hvis parameteren er satt til
True
. Hvis du utelater parameteren, eller setter den til
False
, 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 maksimumsstørrelsen, returnerer kommandoen en statusfeil. Feilmeldingen sier at den maksimale filstørrelsen er overskredet. Dette har imidlertid ingen effekt på serversiden. serveren har mottatt og behandlet forespørselen på riktig måte.
Bruk
ResultBody
-parameteren til å bestemme hvordan brødteksten i HTTP-svaret skal formateres fra serveren i kommandoresultatet. Du har tre alternativer:
None
: Ikke ta med brødteksten i HTTP-svaret i kommandoresultatet.Base64
: Base64 koder kroppen før du inkluderer den i resultatet.PlainText
: Ta med 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 data som ikke kan skrives ut.
Bruk
Timeout
-parameteren til å angi en tidsavbruddsperiode (sekunder). Hvis forespørselen ikke fullføres i løpet av denne perioden, returnerer APIen en feil.
Skriv inn nyttelasten (dataene) rett etter at du har utstedt kommandoen. Alt du angir, 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 et punktum etterfulgt av et linjeskift (".\n"). Nå utføres kommandoen, og dataene sendes til serveren.
Eksempler
Brødteksten i meldingen er JSON i begge disse eksemplene. Det kan være et hvilket som helst format, avhengig av det forventede formatet på 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-et:
xcommand HttpClient Put Header: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
Eksempel 2: Legge inn data i 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"} .
Mer informasjon
Du finner mer informasjon om hvordan du bruker HTTP-klientforespørsler, i tilpasningsveiledningen . Velg den nyeste versjonen.
Cisco-støtte (TAC) støtter ikke feilsøking av tredjepartskode, inkludert makroer. Kontroller Cisco Collaboration Developer-fellesskapet hvis du trenger hjelp med makroer og tredjepartskode. Det er også mange utvikler- og integratorressurser på dette nettstedet.