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
till På (xConfiguration HttpClient-läge: På
). -
Systemadministratören kan förhindra användning av HTTP genom att ställa in
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 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.