Med hjälp av makron kan du skicka data till en HTTP(S)-server när du vill. Du kan välja vilka data som ska skickas och strukturera dem som du vill. Genom att göra det på detta sätt kan du anpassa data till en redan etablerad service.

Säkerhetsåtgärder:

  • Funktionen för HTTP(S)-klientförfrågan är inaktiverad som standardvärde. En systemadministratören måste explicit aktivera funktionen genom att ange HttpKlient > läge till (xKonfiguration HttpKlient-läge: På).

  • Systemadministratören kan förhindra att HTTP används genom att ange HttpClient > AllowHTTP som 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.

De konfigurationer som anges i denna artikel, är tillgängliga både via webbgränssnittet med enheten och i API. Kommandon finns i API. Läs artikeln avancerade inställningar för information om hur man kommer åt webbgränssnittet och använder API:n.

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 inte är tom kan du endast skicka HTTP(S)-förfrågningar till servrar i listan. Om listan är tom kan du skicka förfrågningar till alla HTTP(S)-servrar.

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.

Tillåt HTTPS utan verifiering av certifikat

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 det inte går att verifiera certifikatet kan systemadministratören konfigurera HttpKlient > TillåtOsäkerHTTPS till (xKonfiguration HttpKlient TillåtOsäkerHTTPS: På). Detta tillåter användning av 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ågan till en HTTP(S)-server: <method> är antingen Post, Put, Patch, Geteller 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>

Det är valfritt att lägga till fält för sidhuvud, men 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 command = '{"on":true}';
  xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, command);
}

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":"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å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 Cisco Collaboration Developer community om du behöver hjälp med makron och kod från tredje part. Det finns också många utvecklings- och integrationsresurser på den här webbplatsen.