Med makroer kan du sende data til en HTTP(S)-server, når du har brug for det. Du har kontrol over, hvilke data der sendes, og hvordan de er organiseret, hvilket gør det nemt at tilpasse dataene til brug med eksisterende tjenester.

Sikkerhedsforanstaltninger:

  • Funktionen HTTP(S)-klientanmodning er deaktiveret som standard. En systemadministrator skal udtrykkeligt aktivere funktionen ved at indstille HttpClient > Tilstand til Til ( xConfiguration HttpClient-tilstand: På ).

  • Systemadministratoren kan forhindre brugen af HTTP ved at indstille HttpClient > AllowHTTP til False ( xConfiguration HttpClient AllowHTTP: Falsk ).

  • Systemadministratoren kan angive en liste over HTTP(S)-servere, som enheden har tilladelse til at sende data til. (Se kommandoerne xCommand HttpClient Tillad værtsnavn .)

  • Antallet af samtidige HTTP(S)-anmodninger er begrænset.

De konfigurationer, der er nævnt i denne artikel, er tilgængelige både fra enhedens webgrænseflade og i API'et. Kommandoer er tilgængelige via API'en. Læs artiklen avancerede indstillinger for oplysninger om, hvordan du får adgang til webgrænsefladen og bruger API'en.

Liste over tilladte HTTP(S) servere

Systemadministratoren kan bruge disse kommandoer til at opsætte og vedligeholde en liste over op til ti tilladte HTTP(S)-servere (værter):

  • xCommand HttpClient Tillad værtsnavn til tilføjelse af udtryk:

  • xCommand HttpClient Tillad slet værtsnavn

  • xCommand HttpClient tillader liste over værtsnavne

  • xCommand HttpClient Tillad Værtsnavn Fjern Id:

Hvis listen indeholder serverposter, kan du kun sende HTTP(S)-anmodninger til disse servere. Men hvis listen er tom, kan du sende anmodninger til enhver HTTP(S)-server.

Kontrol over listen over tilladte servere udføres både ved brug af usikker (HTTP) og sikker (HTTPS) overførsel af data.

HTTPS uden certifikatvalidering

Når der sendes anmodninger via HTTPS, kontrollerer enheden certifikatet for HTTPS-serveren som standard. Hvis HTTPS-servercertifikatet ikke findes gyldigt, får du en fejlmeddelelse. Enheden sender ikke nogen data til den server.

Vi anbefaler, at du bruger HTTPS med certifikatbekræftelse. Hvis certifikatvalidering ikke er mulig, kan systemadministratoren indstille HttpClient > AllowInsecureHTTPS til On ( xConfiguration HttpClient AllowInsecureHTTPS: På ). Dette tillader brug af HTTPS uden at validere serverens certifikat.

Afsendelse af HTTP(S)-anmodninger

Når HTTP(S)-klientanmodningsfunktionen er aktiveret, kan du bruge følgende kommandoer til at sende anmodninger til en HTTP(S)-server. er enten Post, Put, Patch, Hent eller Slet .

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Sidehoved: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] URL-adresse:

Tilføjelse af overskriftsfelter er valgfri, og du kan tilføje op til 20 felter.

Parameteren AllowInsecureHTTPS har kun virkning, hvis systemadministratoren har tilladt brugen af HTTPS uden at validere serverens certifikat. Hvis det er tilfældet, kan du sende data til serveren uden at validere servercertifikatet, hvis parameteren er indstillet til Sand . Hvis du udelader parameteren eller indstiller den til Falsk, sendes data ikke, hvis certifikatvalideringen mislykkes.

Parameteren ResposenSizeLimit er den maksimale nyttelaststørrelse (byte), som enheden accepterer som et svar fra serveren. Hvis svar-nyttedata er større end denne maksimale størrelse, returnerer kommandoen en statusfejl. Fejlmeddelelsen siger, at den maksimale filstørrelse er overskredet. Men dette har ingen effekt på serversiden; serveren har modtaget og behandlet anmodningen korrekt.

Brug parameteren ResultBody til at beslutte, hvordan brødteksten i HTTP-svaret skal formateres fra serveren i kommandoresultatet. Du har tre valgmuligheder:

  • Ingen : Inkluder ikke brødteksten i HTTP-svaret i kommando resultatet.

  • Base64 : Base64-kodning af brødteksten før du medtager det i resultatet.

  • AlmindeligTekst: Inkluder brødteksten i resultatet som almindelig tekst. Hvis svaret indeholder bogstaver, der ikke kan udskrives, returnerer kommandoen en status fejl med en meddelelse om, at data, der ikke kan udskrives, blev fundet.

Brug parameteren Timeout til at indstille en timeout-periode (sekunder). Hvis anmodningen ikke gennemføres i løbet af denne periode, returnerer API'en en fejl.

Indtast nyttelasten (data) lige efter, du har udstedt kommandoen. Alt, du indtaster, inklusive linjeskift, er en del af nyttelasten. Når du er færdig, skal du afslutte med et linjeskift ("\n") og en separat linje, der kun indeholder et punktum efterfulgt af et linjeskift (".\n"). Nu udføres kommandoen, og data sendes til serveren.

Eksempler:

Meddelelsesteksten er JSON i begge disse eksempler. Det kan være ethvert format, afhængigt af det forventede format for den tjeneste, der modtager meddelelserne.

1. eksempel: IoT-enhedskontrol ved hjælp af HTTP Post

Her er en makrofunktion, der tænder for et lys, der er tilsluttet en Hue Bridge:

 funktion hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Content-Type: applikation/JSON '; var kommando = ' {"on": true} '; xapi. Command (' HttpClient put ', {' URL-adresse ': URL, ' header ': overskrifter}, kommando); } 

Du kan gøre det samme på kommandolinjen ved hjælp af API'EN:

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

2. eksempel: Sender data til et overvågningsværktøj ved hjælp af HTTP Post

 xcommand HttpClient-postheader: "Indholdstype: application/json" URL-adresse: "https://mymonitoringserver.com/service/devicemonitoring" {"Meddelelse":"En bruger har rapporteret et problem med dette system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Yderligere oplysninger

Find flere oplysninger om, hvordan du bruger HTTP-klientanmodninger, i brugertilpasningsvejledningen . Vælg den seneste version.

Cisco support (TAC) understøtter ikke fejlfinding af tredjepartskode, inklusive makroer. Kontrollér, https://roomos.cisco.com om du har brug for hjælp til makroer og tredjepartskode.