Ved at bruge makroer kan du sende data til en HTTP(S)-server, når du ønsker det. Du kan vælge, hvilke data du vil sende, og strukturere dem efter dine ønsker. Ved at gøre det på denne måde kan du tilpasse dataene til en allerede etableret tjeneste.

Sikkerhedsforanstaltninger:

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

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

  • Systemadministratoren kan angive en liste over HTTP(S)-servere, som enheden har tilladelse til at sende data til. (Se xCommand HttpClient Allow Hostname kommandoer.)

  • 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'en. Kommandoer er tilgængelige i 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 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 kun sende HTTP(S)-anmodninger til serverne på listen. Hvis listen er tom, kan du sende anmodningerne 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 certifikatbekræftelse

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 certifikatbekræftelse ikke er muligt, kan systemadministratoren indstille HttpClient -> AllowInsecureHTTPS til On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Dette tillader brug af HTTPS uden at validere serverens certifikat.

Sender HTTP(s) anmodninger

Når funktionen HTTP(S)-klientanmodning er aktiveret, kan du bruge følgende kommandoer til at sende anmodninger 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>

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

, AllowInsecureHTTPS parameter har kun en effekt, hvis systemadministratoren har tilladt brug af HTTPS uden at validere serverens certifikat. Hvis det er korrekt, kan du sende data til serveren uden at validere servercertifikatet, hvis parameteren er indstillet til True . Hvis du forlader parameteren eller indstiller den til False , der sendes ikke data, hvis certifikatvalidering mislykkes.

, ResposenSizeLimit parameter er den maksimale nyttedatastørrelse (bytes), 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 pil ResultBody parameter til at bestemme, hvordan brødteksten af HTTP-svaret formateres fra serveren i kommandoresultatet. Du har tre valgmuligheder:

  • None : Inkluder ikke brødteksten af HTTP-svaret i kommandoresultatet.

  • Base64 : Base64 indkode brødteksten, før den inkluderes i resultatet.

  • PlainText : Inkluder brødteksten i resultatet som almindelig tekst. Hvis svaret indeholder ikke-udskrivelige bogstaver, returnerer kommandoen en statusfejl med en meddelelse, der siger, at der blev fundet ikke-udskrivelige data.

Brug pil Timeout parameter 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:


     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 gøre det samme på kommandolinjen ved hjælp 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} . 
   

2. eksempel: Sender data til et overvågningsværktøj ved hjælp af 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"} . 
   

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. Tjek Cisco Collaboration Developer-gruppen, hvis du har brug for hjælp med makroer og tredjepartskode. Der er også mange udvikler- og integratorressourcer på dette websted.