Med makroer kan du sende data til en HTTP-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:

  • HTTP(S)-klientanmodningsfunktionen er deaktiveret som standard. En systemadministrator skal udtrykkeligt aktivere funktionen ved at indstille HttpClient > Mode til On ( xConfiguration HttpClient Mode: On ).

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

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

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

De konfigurationer, der henvises til i denne artikel, er tilgængelige både fra enhedens webgrænseflade og i API. Kommandoer er tilgængelige via API. Læs artiklen Avancerede indstillinger for at se, hvordan du kan få adgang til webgrænsefladen og bruge API'et.

Liste over tilladte HTTP(S)-servere

Systemadministratoren kan bruge disse kommandoer til at oprette og vedligeholde en liste med op til ti tilladte HTTPs-servere (værter):

  • xCommand HttpClient Tillad værtsnavn - Tilføj udtryk: <Almindeligt udtryk, der macher værtsnavnet eller IP-adressen for HTTP(S)-serveren>

  • xCommand HttpClient Tillad værtsnavn - ryd

  • xCommand HttpClient Tillad værtsnavn - liste

  • xCommand HttpClient Tillad værtsnavn - fjern id: <id for en post på listen>

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

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

HTTPS uden certifikatvalidering

Når du sender anmodninger via HTTPS, kontrollerer enheden certifikatet for HTTPS-serveren som standard. Hvis der et HTTPS-servercertifikatet viser sig ikke at være gyldigt, får du en fejlmeddelelse. Enheden sender ikke data til den pågældende server.

Vi anbefaler brug af HTTPS med certifikatvalidering. Hvis certifikatvalidering ikke er mulig, kan systemadministratoren indstille HttpClient > AllowInsecureHTTPS til On ( xConfiguration HttpClient AllowInsecureHTTPS: Til ). Dette gør det muligt at bruge HTTPS uden at validere serverenens certifikat.

Afsendelse af HTTP-anmodninger

Når HTTP(S)-klientanmodningsfunktionen er aktiveret, kan du bruge følgende kommandoer til at sende anmodninger til en HTTP(S)-server: <metode> er enten post, put, ret, hent eller slet.

  • xCommand HttpClient <Metode> [AllowInsecureHTTPS: <Sand/Falsk>] [Overskrift: <Overskriftstekst>] [ResponseSizeLimit: <Maksimal svarstørrelse>] [Resultatbrødtekst: <Ingen/Almindelig tekst/Base64>] [Timeout: <Timeoutperiode>] URL: <URL, som anmodningen skal sendes til>

Det er valgfrit at tilføje overskriftsfelter, og du kan tilføje op til 20 felter.

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

SvarStørrelseGrænse-parameteren er den maksimale datastørrelse (byte), som enheden accepterer som et svar fra serveren. Hvis svardataene er større end denne maksimale størrelse, returnerer kommandoen en statusfejl. Fejlmeddelelsen angiver, at den maksimale filstørrelse er overskredet. Dette har imidlertid ingen indflydelse på serversiden. Serveren har modtaget og behandlet anmodningen korrekt.

Brug ResultatBrødtekst-parameteren til at bestemme, hvordan brødteksten i HTTP-svaret skal formateres fra serveren i kommandoresultatet. Der er tre muligheder:

  • Ingen: Medtag ikke brødteksten i HTTP-svaret i kommandoresultatet.

  • Base64: Base64-kodning af brødteksten, før den medtages i resultatet.

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

Brug Timeout-parameteren til at angive en timeoutperiode (sekunder). Hvis anmodningen ikke fuldføres i løbet af denne periode, returnerer API'et en fejl.

Angiv nyttelast (data), så snart du har udstedt kommandoen. Alt, som du indtaster, herunder 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 dataene sendes til serveren.

Eksempler:

Meddelelsens brødtekst er JSON i begge disse eksempler. Det kan være et vilkårligt format, afhængigt af det forventede format for den tjeneste, der modtager meddelelserne.

Eksempel 1: Styring af IoT-enhed via HTTP Post

Her er en makrofunktion, der tændet et lys, der er fprbundet til en Philips Hue-bro:

 funktion 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 gøre det samme på kommandolinjen ved brug af API'en:

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

Eksempel 2: Afsendelse af data til et overvågningsværktøj via HTTP Post

 xcommand HttpClient Post Header: "Content-Type: application/json" URL-adresse: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"En bruger rapporterede et problem med dette system","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Yderligere oplysninger

Få flere oplysninger om, hvordan du bruger HTTP-anmodninger i Tilpasningsvejledning. Vælg den nyeste version.

Cisco-support (TAC) hjælper ikke ved fejlfinding af tredjepartskode, herunder makroer. Tjek https://roomos.cisco.com , hvis du har brug for hjælp til makroer og tredjepartskode.