Med makron kan du skicka data till en HTTP(S)-server när du behöver. Du har kontroll över vilka data som skickas och hur den är organiserad, vilket gör det enkelt att anpassa data för användning med befintliga tjänster.

Säkerhetsåtgärder:

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

  • Systemadministratören kan förhindra användning av HTTP genom att ställa in HttpClient > TillåtHTTP till Falskt ( xConfiguration HttpClient AllowHTTP: Falskt ).

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

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

De konfigurationer som avses i den här artikeln är tillgängliga både från enhetens webbgränssnitt och i API. Kommandon är tillgängliga via 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 Host Name Add Expression:

  • xCommand HttpClient Tillåt värdnamn rensa

  • xCommand HttpClient Tillåt värdnamn lista

  • xCommand HttpClient Tillåt Värdnamn Ta Bort ID:

Om listan innehåller serverposter kan du bara skicka HTTP(S)-förfrågningar till dessa servrar. Men 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öjlig kan systemadministratören ställa in HttpClient > AllowInsecureHTTPS till ( xConfiguration HttpClient AllowInsecureHTTPS: På ). Detta gör det möjligt att använda HTTPS utan att validera certifikatet för servern.

Skicka HTTP(S)-förfrågningar

När funktionen för HTTP(S)-klientförfrågan är aktiverad kan du använda följande kommandon för att skicka förfrågningar till en HTTP(S)-server. är antingen Publicera, Placera, Programfix, Hämta eller Ta bort .

  • xCommand HttpClient [AllowInsecureHTTPS: ] [Header: ] [ResponseSizeLimit: ] [ResultBody: ] [Timeout: ] Url:

Det är valfritt att lägga till huvudfält och du kan lägga till upp till 20 fält.

Parametern AllowInsecureHTTPS gäller endast om systemadministratören har tillåtit användning av HTTPS utan att validera certifikatet för servern. 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 ställer in den på Falskt, skickas inte data om certifikatvalideringen misslyckas.

Parametern ResposenSizeLimit är den maximala nyttolaststorleken (byte) som enheten accepterar som 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 parametern ResultBody för att bestämma hur texten i HTTP-svaret ska formateras från servern i kommandoresultatet. Du har tre alternativ:

  • Inget : Inkludera inte innehållet i HTTP-svaret i kommando resultatet.

  • Base64: Base64 kodar texten innan den inkluderas i resultatet.

  • Oformaterad text: Inkludera texten i resultatet som oformaterad text. Om svaret innehåller tecken som inte är utskrivbara returnerar kommandot ett status fel med ett meddelande som säger att data som inte kan skrivas ut har påträffats.

Använd parametern Timeout för att ange en timeout-period (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:

 funktion hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Innehållstyp: program/JSON '; var, kommando = ' {"på": sant} "; xapi. Command (' HttpClient put ', {' URL ': URL, rubrik: headers}, kommando); } 

Du kan göra det på kommando raden med hjälp av API:

 xcommand HttpClient Put Header: "Innehållstyp: URL för program/json: "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 Rubrik: "Innehållstyp: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Meddelande":"En användare har rapporterat ett problem med det här systemet","systemName":"BoardRoom 4: e våningen","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 https://roomos.cisco.com om du behöver hjälp med makron och kod från tredje part.