Genom att använda makron kan du skicka data till en HTTP-server när du vill. Du kan välja vilken data du vill skicka och strukturera dem som du vill. På det här sättet kan du anpassa data till en tjänst som redan etablerats.

Säkerhetsåtgärder:

  • Funktionen för HTTP(S)-klientbegäran är inaktiverad som standard. En systemadministratör måste explicit aktivera funktionen genom att ställa in HttpClient > Mode till På ( xConfiguration HttpClient Mode: On ).

  • Systemadministratören kan förhindra användning av HTTP genom att ställa in httpclient > AllowHTTP to False ( xConfiguration HttpClient AllowHTTP: False ).

  • Systemadministratören kan specificera en lista över HTTP-servrar som enheten får skicka data till. (Se xCommand HttpClient Allow Hostname kommandon.)

  • Antalet samtidiga HTTP(S)-förfrågningar är begränsat.

Konfigurationerna som hänvisas i denna artikel är tillgängliga både från enhetens webbgränssnitt och i API:en. Kommandon är tillgängliga i API: Läs artikeln Avancerade inställningar för information om hur du får åtkomst till webbgränssnittet och använder API:et.

Lista över tillåtna HTTP(S)-servrar

Systemadministratören kan använda dessa kommandon för att ställa in och underhålla en lista över upp till tio tillåtna HTTP(S)-servrar (värdar):

  • 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>

Om listan inte är tom kan du bara skicka HTTP-förfrågningar till servrarna i listan. Om listan är tom kan du skicka förfrågningar till valfri HTTP(S)-server.

Kontrollen mot listan över tillåtna servrar utförs både vid användning av osäker (HTTP) och säker (HTTPS)-överföring av data.

HTTPS utan certifikatvalidering

När förfrågningar skickas via HTTPS kontrollerar enheten certifikatet för HTTPS-servern som standard. Om HTTPS-servercertifikatet inte har visats vara giltigt får du ett felmeddelande. Enheten skickar inga data till den servern.

Vi rekommenderar att du använder HTTPS med certifikatvalidering. Om certifikatvalidering inte är möjligt kan systemadministratören ange httpclient > AllowInsecureHTTPS till On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Detta gör det möjligt att använda HTTPS utan att validera certifikatet för servern.

Skicka HTTP-förfrågningar

När funktionen för HTTP(S)-klientbegäran är aktiverad kan du använda följande kommandon för att skicka förfrågningar till en HTTP-server. <method> är antingen 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>

Att lägga till fält för sidhuvudet är valfritt, men du kan lägga till så många som 20 fält.

Symbolen AllowInsecureHTTPS parametern har endast en effekt om systemadministratören har tillåtit användning av HTTPS utan att validera servercertifikatet. I så fall kan du skicka data till servern utan att validera servercertifikatet om parametern är inställd på True . Om du lämnar ut parametern eller anger den som False , data skickas inte om certifikatvalideringen misslyckas.

Symbolen ResposenSizeLimit parametern är den maximala nyttolaststorleken (byte) som enheten accepterar som ett svar från servern. Om svars nyttolasten är större än denna maximala storlek visas ett statusfel i kommandot. Felmeddelandet säger att maximal filstorlek har överskridits. Detta påverkar dock inte serversidan. servern har tagit emot och bearbetat begäran korrekt.

Använd pilen ResultBody parametern för att bestämma hur man formaterar HTTP-svaret från servern i kommandoresultatet. Du har tre alternativ:

  • None : Inkludera inte brödtexten för HTTP-svaret i kommandoresultatet.

  • Base64 : Base64 kodar brödtexten innan den inkluderas till följd av detta.

  • PlainText : Inkludera texten i resultatet som oformaterad text. Om svaret innehåller bokstäver som inte går att skriva ut visas ett statusfel med ett meddelande som säger att data som inte går att skriva ut har påträffats.

Använd pilen Timeout parameter för att ställa in en timeoutperiod (sekunder). Om begäran inte slutförs under denna period returnerar API:et ett fel.

Ange nyttolast (data) direkt efter att du har utfärdat kommandot. Allt du anger, inklusive radbrytningar, ingår i nyttolasten. När du är klar avslutar du med en radbrytning ("\n") och en separat linje som bara innehåller en punkt följt av en radbrytning (".\n"). Nu körs kommandot och data skickas till servern.

Exempel:

Meddelandets brödtext är JSON i båda dessa exempel. Det kan vara vilket format som helst, beroende på det förväntade formatet på den tjänst som tar emot meddelandena.

Exempel 1: IoT-enhetskontroll med HTTP Post

Här är en makrofunktion som slår på ett ljus som är anslutet till en Hue 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öra samma sak på kommandoraden med API:en:


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

Exempel 2: Publicera data till ett övervakningsverktyg med 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 information

Mer information om hur du använder HTTP-klientförfrågningar finns i anpassningsguiden . Välj den senaste versionen.

Ciscos support (TAC) har inte stöd för felsökning av tredjepartskoder, inklusive makron. Kontrollera Cisco Collaboration Developer Community om du behöver hjälp med makron och kod från tredje part. Det finns dessutom många resurser för utvecklare och integratörer på den här webbplatsen.