Med makron kan du skicka data till en HTTPs-server när du behöver. 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 HTTP(S)-klientförfrågan är inaktiverad som standardvärde. En systemadministratör måste uttryckligen aktivera funktionen genom att ställa in HttpClient > Läge till ( xConfiguration HttpClient Mode: On ).

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

  • Systemadministratören kan ange en lista över HTTP(S)-servrar som enheten har tillåtelse att skicka data till. (Se kommandon xCommand HttpClient Allow Hostname.)

  • Antalet samtidiga HTTP(S)-förfrågan begränsas.

Konfigurationerna som hänvisas till 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 mer om att komma åt webbgränssnittet och använda API:et i artikeln Avancerade inställningar.

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

Systemadministratören kan använda de här kommandona för att konfigurera och underhålla en lista med upp till tio tillåtna HTTP(S)-servrar (värdar):

  • xKommando HttpKlient tillåt värdnamn lägg till uttryck: <reguljärt uttryck som matchar värdnamn eller IP-adressen för servern HTTP(S)>

  • xKommando HttpKlient tillåt värdnamn rensa

  • xKommando HttpKlient tillåt värdnamn lista

  • xKommando HttpKlient tillåt värdnamn radera Id: <id för en post i listan>

Om listan innehåller serverposter kan du bara skicka HTTP-förfrågningar till dessa servrar. Men om listan är tom kan du skicka förfrågningar till vilken HTTP-server som helst.

Kontrollen mot listan över tillåtna servrar utförs både när du använder osäkra (HTTP) och säkra (HTTPS) överföringar av data.

HTTPS utan certifikatvalidering

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

Vi rekommenderar att du använder HTTPS med certifikatverifiering. Om certifikatvalidering inte är möjlig kan systemadministratören ställa in HttpClient > AllowInsecureHTTPS till ( xConfiguration HttpClient AllowInsecureHTTPS: På ). Detta tillåter användning av HTTPS utan att validera certifikatet för servern.

Skickar HTTP-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ågan till en HTTP(S)-server: <method> är antingen Post, Put, Patch, Geteller Delete.

  • xCommand HttpClient <Metod> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <Maximal svarsstorlek>] [ResultBody: <Ingen/PlainText/Base64>] [Timeout: > URL: <URL för att skicka begäran till>

Att lägga till rubrikfält är valfritt och du kan lägga till upp till 20 fält.

Parametern TillåtOsäkerHTTPS har endast inverkan om systemadministratören har gett tillåtelse för HTTPS utan att validera certifikatet för servern. Om så är fallet, du kan skicka data till servern utan att verifiera servercertifikatet om parametern är inställd på Sant. Om du lämnar ut parametern, eller ange Falskt, data skickas inte om verifiering av certifikat misslyckas.

Parametern ResposenSizeLimit är den maximala nyttolaststorleken (byte) som enheten accepterar som svar från servern. Om svaret om nyttolast är större än den maximala storleken returneras ett statusfel. Felmeddelandet talar om att den maximala filstorleken har överskridits. Detta påverkar dock inte serversidan; servern har tagit emot och behandlat förfrågan korrekt.

Använd parametern ResultBody när du vill definiera hur texten i HTTP-svaret formateras från servern i kommandoresultatet. Det finns tre alternativ:

  • None: Inkludera inte texten i HTTP-svaret i kommandoresultatet.

  • Base64: Base64-koda texten innan den inkluderas i resultatet.

  • PlainText: Inkludera texten i resultatet som oformaterad text. Om svaret innehåller ej utskrivbara bokstäver returneras ett statusfel med ett meddelande om att data som inte är utskrivbara har påträffats.

Använd parametern Timeout för att ange timeout i antal sekunder. Om förfrågan inte slutförs under den här perioden returneras ett fel från API.

Ange last (data) direkt efter att du har skickat kommandot. Allt som du anger, inklusive radbrytning, är en del av lasten. När du är klar, avsluta med en radbrytning (”\n”) och en separat rad med bara en period följt av en radbrytning (”. \n”). Nu utförs kommandot och data skickas till servern.

Exempel

Huvudtexten är JSON i båda dessa exempel. Det kan vara vilket format som helst, beroende på vilket format som förväntas för den tjänst som tar emot meddelanden.

Exempel 1: IoT enhetskontroll använder HTTP-inlägg

Här är en makrofunktion som aktiverar en lampa 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 kommando = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, kommando); } 

Du kan göra samma på kommandoraden med hjälp av 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: Lägga in data till ett övervakningsverktyg som använder HTTP-inlägg

 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"} . 

Mer information

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

Cisco support (TAC) har inte stöd för felsökning av kod från tredje part, inklusive makron. Kontrollera https://roomos.cisco.com om du behöver hjälp med makron och tredjepartskod.