Med makroer kan du når som helst sende data til en HTTP-server. Du har kontroll over hvilke data som sendes og hvordan de organiseres, noe som gjør det enkelt å tilpasse dataene til bruk med eksisterende tjenester.

Sikkerhetstiltak:

  • HTTPS-klientforespørselsfunksjonen er deaktivert som standard. En systemansvarlig må eksplisitt aktivere funksjonen ved å sette HttpClient > Mode til ( xConfiguration HttpClient-modus: På ).

  • Systemansvarlig kan forhindre bruk av HTTP ved å sette HttpClient > AllowHTTP til False ( xConfiguration HttpClient AllowHTTP: False ).

  • Systemansvarlig kan angi en liste over HTTP-servere som enheten har tillatelse til å sende data til. (Se kommandoene xCommand HttpClient Allow Hostname .)

  • Antallet samtidige HTTP-forespørsler er begrenset.

Konfigurasjonene det refereres til i denne artikkelen, er tilgjengelige både fra enhetens webgrensesnitt og i API. Kommandoer er tilgjengelige via API. Les artikkelen Avanserte innstillinger hvis du vil ha informasjon om hvordan du får tilgang til webgrensesnittet og bruker API.

Liste over tillatte HTTP-servere

Systemansvarlig kan bruke disse kommandoene til å konfigurere og vedlikeholde en liste over opptil ti tillatte HTTP-servere (verter):

  • xCommand HttpClient Tillat vertsnavn Legg til uttrykk: <Vanlig uttrykk som samsvarer med vertsnavnet eller IP adressen til HTTPs-serveren>

  • xCommand HttpClient Tillat vertsnavn Fjern

  • xCommand HttpClient Tillat vertsnavnliste

  • xCommand HttpClient Tillat vertsnavn Fjern ID: <id for en oppføring i listen>

Hvis listen inneholder serveroppføringer, kan du bare sende HTTP-forespørsler til disse serverne. Hvis listen imidlertid er tom, kan du sende forespørsler til en hvilken som helst HTTP-server.

Sjekken mot listen over tillatte servere utføres både når du bruker usikker (HTTP) og sikker (HTTPS) overføring av data.

HTTPS uten sertifikatvalidering

Når du sender forespørsler via 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 HttpClient > AllowInsecureHTTPS til ( xConfiguration HttpClient AllowInsecureHTTPS: På ). Dette tillater bruk av HTTPS uten å validere sertifikatet til serveren.

Sende HTTP-forespørsler

Når funksjonen HTTP-klientforespørsel er aktivert, kan du bruke følgende kommandoer til å sende forespørsler til en HTTPS-server. <metode> er enten Post , Put , Patch , Get eller Delete .

  • xCommand HttpClient <Metode> [AllowInsecureHTTPS: <True/False>] [Topptekst: <Topptekst>] [ResponseSizeLimit: <Maksimal responsstørrelse>] [ResultBody: <None/PlainText/Base64>] [Tidsavbrudd: <Tidsavbruddsperiode>] Url: <URL å sende forespørselen til>

Det er valgfritt å legge til topptekstfelt, og du kan legge til opptil 20 felt.

Parameteren AllowInsecureHTTPS har bare effekt 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 Sann . Hvis du utelater parameteren eller setter den til Usann , sendes ikke data hvis sertifikatvalideringen mislykkes.

Parameteren ResposenSizeLimit er den maksimale nyttelaststørrelsen (byte) som enheten godtar som et svar fra serveren. Hvis svarnyttelasten er større enn denne maksimale størrelsen, returnerer kommandoen en statusfeil. Feilmeldingen sier at maksimal filstørrelse er overskredet. Dette har imidlertid ingen effekt på serversiden; Serveren har mottatt og behandlet forespørselen på riktig måte.

Bruk parameteren ResultBody til å bestemme hvordan HTTP-svaret skal formateres fra serveren i kommandoresultatet. Du har tre alternativer:

  • Ingen : Ikke ta med brødteksten til HTTP-svaret i kommandoresultatet.

  • Base64 : Base64 koder kroppen før den inkluderes i resultatet.

  • Ren tekst : 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 data som ikke kan skrives ut, ble oppdaget.

Bruk parameteren Tidsavbrudd til å angi en tidsavbruddsperiode (sekunder). Hvis forespørselen ikke fullføres i denne perioden, returnerer API en feil.

Skriv inn nyttelasten (dataene) rett etter at du har gitt 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 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 til 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:

 funksjon 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 å bruke API:

 xcommand HttpClient sette overskrift: "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":"En bruker rapporterte et problem med dette systemet","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Ytterligere informasjon

Du finner mer informasjon om hvordan du bruker HTTP-klientforespørsler i veiledningen for tilpassing. Velg den nyeste versjonen.

Ciscos kundestø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.