Med makron kan du skicka data till en HTTPs-server när du vill. Du har kontroll över vilken 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 HTTPs-klientbegäran är inaktiverad som standard. En systemadministratör måste uttryckligen aktivera funktionen genom att ange till On (
xConfiguration HttpClient Mode: On). -
Systemadministratören kan förhindra användningen av HTTP genom att ange HttpClient False ( xConfiguration HttpClient AllowHTTP: False
). -
Systemadministratören kan ange en lista över HTTPs-servrar som enheten får skicka data till. (Se kommandona
xCommand HttpClient Allow Hostname.) -
Antalet samtidiga HTTPs-begäranden är begränsat.
Konfigurationerna som beskrivs 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 kommer åt webbgränssnittet och använder API.
Lista över tillåtna HTTPs-servrar
Systemadministratören kan använda dessa kommandon för att konfigurera och underhålla en lista med upp till tio tillåtna HTTPs-servrar (värdar):
-
xCommand HttpClient Tillåt värdnamn Lägg till uttryck: <Reguljärt uttryck som matchar värdnamnet eller IP adressen för HTTPs-servern> -
xCommand HttpClient Tillåt värdnamn klart -
xCommand HttpClient Tillåt värdnamnslista -
xCommand HttpClient Tillåt värdnamn Ta bort ID: <ID för en post i listan>
Om listan innehåller serverposter kan du bara skicka HTTPs-begäranden till dessa servrar. Om listan är tom kan du skicka begäranden till valfri HTTPs-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 begäranden skickas via HTTPS kontrollerar enheten HTTPS-serverns certifikat som standard. Om HTTPS-servercertifikatet inte visar sig vara giltigt visas 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 ange HttpClient On ( xConfiguration HttpClient AllowInsecureHTTPS: On ). Detta tillåter användning av HTTPS utan att validera serverns certifikat.
Skicka HTTPs-begäranden
När funktionen för HTTPs-klientbegäran har aktiverats kan du använda följande kommandon för att skicka begäranden till en HTTPs-server. <metod>är antingenPOST , PUT,Patch,Get eller Delete.
-
xCommand HttpClient <Metod> [AllowInsecureHTTPS: <Sant/Falskt>] [Sidhuvud: <Rubriktext>] [ResponseSizeLimit: <Maximal svarsstorlek>] [ResultBody: <Ingen/PlainText/Base64>] [Timeout: <Timeout-period>] URL: <URL att skicka begäran till>
Det är valfritt att lägga till rubrikfält och du kan lägga till upp till 20 fält.
Parametern AllowInsecureHTTPS har bara effekt om systemadministratören har tillåtit användning av HTTPS utan att validera serverns certifikat. Om så är fallet kan du skicka data till servern utan att verifiera servercertifikatet om parametern är inställd på Sant . Om du utelämnar parametern eller anger värdet Falskt skickas inga data om certifikatvalideringen misslyckas.
Parametern ResposenSizeLimit är den maximala nyttolaststorleken (byte) som enheten accepterar som svar från servern. Om svarsnyttolasten är större än den maximala storleken returnerar kommandot ett statusfel. Felmeddelandet säger att den maximala filstorleken har överskridits. Detta har dock ingen effekt på serversidan; servern har tagit emot och behandlat begäran korrekt.
Använd parametern ResultBody för att bestämma hur HTTP-svarets brödtext från servern ska formateras i kommandoresultatet. Du har tre alternativ:
-
Ingen: Ta inte med HTTP-svarets brödtext i kommandoresultatet. -
Base64: Base64 kodar kroppen innan den inkluderas i resultatet. -
Klartext: Inkludera brödtexten i resultatet som oformaterad text. Om svaret innehåller icke-utskrivbara bokstäver returnerar kommandot ett statusfel med ett meddelande om att data som inte kan skrivas ut påträffades.
Använd parametern Timeout för att ange en timeout-period (sekunder). Om begäran inte slutförs under denna period returnerar API ett fel.
Ange nyttolasten (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 rad som bara innehåller en punkt följt av en radbrytning (".\n"). Nu körs kommandot och data skickas till servern.
Exempel
Brödtexten i meddelandet är JSON i båda dessa exempel. Det kan vara vilket format som helst, beroende på det förväntade formatet för den tjänst som tar emot meddelandena.
Exempel 1: IoT-enhetskontroll med HTTP POST
Här är en makrofunktion som tänder en lampa som är ansluten till en Philips 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:
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":"En användare rapporterade ett problem med det här systemet","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
Ytterligare information
Mer information om hur du använder HTTP-klientbegäranden finns i anpassningsguiden . Välj den senaste versionen.
Cisco support (TAC) stöder inte felsökning av kod från tredje part, inklusive makron. Kontrollera https://roomos.cisco.com om du behöver hjälp med makron och kod från tredje part.