Senden von HTTP-Anforderungen von Geräten der Board-, Desk- und Room-Serie
list-menuFeedback?
Mit dieser Funktion können Geräte der Board-, Desk- oder Room Series HTTPS-Anfragen mit einem HTTPS-Server initiieren und empfangen. Diese Geräte unterstützen Methoden wie POST, PUT, Patch, Get und Delete, sodass unterschiedliche Interaktionen mit dem Server möglich sind.

Mit Makros können Sie bei Bedarf Daten an einen HTTPS-Server senden. Sie haben die Kontrolle darüber, welche Daten gesendet werden und wie sie organisiert werden, sodass Sie die Daten einfach für die Verwendung mit bestehenden Diensten anpassen können.

Sicherheitsmaßnahmen:

  • Die HTTPS-Clientanforderungsfunktion ist standardmäßig deaktiviert. Ein Systemadministrator muss die Funktion explizit aktivieren, indem er HttpClient > Mode auf On ( xConfiguration HttpClient Mode: On ) festlegt .

  • Der Systemadministrator kann die Verwendung von HTTP verhindern, indem er HttpClient>AllowHTTP auf False ( xConfiguration HttpClient AllowHTTP: False ) setzt .

  • Der Systemadministrator kann eine Liste von HTTPS-Servern angeben, an die das Gerät Daten senden darf. (Siehe die xCommand-Befehle HttpClient Hostname zulassen.)

  • Die Anzahl gleichzeitiger HTTPS-Anforderungen ist begrenzt.

Die Konfigurationen, auf die in diesem Artikel verwiesen wird, sind sowohl über die Weboberfläche des Geräts als auch in der API verfügbar. Befehle sind über die API verfügbar. Lesen Sie den Artikel Erweiterte Einstellungen, um Informationen darüber zu erhalten, wie Sie auf die Weboberfläche zugreifen und die API verwenden.

Liste zulässiger HTTPS-Server

Der Systemadministrator kann diese Befehle verwenden, um eine Liste von bis zu zehn zulässigen HTTPS-Servern (Hosts) einzurichten und zu verwalten:

  • xCommand HttpClient Allow Hostname Add Expression: <Regulärer Ausdruck, der mit dem Hostnamen oder der IP-Adresse des HTTPS-Servers übereinstimmt>

  • xCommand HttpClient Host-Namen löschen zulassen

  • xCommand HttpClient Host-Namen-Liste zulassen

  • xCommand HttpClient Allow Hostname Remove ID: <ID eines Eintrags in der Liste>

Wenn die Liste Servereinträge enthält, können Sie nur HTTPS-Anfragen an diese Server senden. Wenn die Liste jedoch leer ist, können Sie Anfragen an einen beliebigen HTTPS-Server senden.

Der Abgleich mit der Liste zulässiger Server wird sowohl bei unsicherer (HTTP) als auch bei sicherer (HTTPS) Datenübertragung durchgeführt.

HTTPS ohne Zertifikatsprüfung

Beim Senden von Anfragen über HTTPS überprüft das Gerät standardmäßig das Zertifikat des HTTPS-Servers. Wenn das Zertifikat des HTTPS-Servers nicht gültig ist, wird eine Fehlermeldung angezeigt. Das Gerät sendet keine Daten an diesen Server.

Wir empfehlen die Verwendung von HTTPS bei der Zertifikatsüberprüfung. Wenn die Zertifikatsüberprüfung nicht möglich ist, kann der Systemadministrator HttpClient > AllowInsecureHTTPS auf On ( xConfiguration HttpClient AllowInsecureHTTPS: On ) setzen . Dies ermöglicht die Verwendung von HTTPS, ohne das Zertifikat des Servers zu validieren.

Senden von HTTPS-Anforderungen

Sobald die HTTPS-Clientanforderungsfunktion aktiviert ist, können Sie die folgenden Befehle verwenden, um Anforderungen an einen HTTPS-Server zu senden. <method>ist entwederPOST , PUT,Patch,Get oder Delete.

  • xCommand HttpClient <Methode> [AllowInsecureHTTPS: <True/False>] [Kopfzeile: <Header-Text>] [ResponseSizeLimit: <maximale Antwortgröße>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout-Zeitraum>] URL: <URL, an die die Anforderung gesendet werden soll>

Das Hinzufügen von Kopfzeilenfeldern ist optional. Sie können bis zu 20 Felder hinzufügen.

Der Parameter AllowInsecureHTTPS hat nur eine Auswirkung, wenn der Systemadministrator die Verwendung von HTTPS zugelassen hat, ohne das Zertifikat des Servers zu validieren. Wenn dies der Fall ist, können Sie Daten an den Server senden, ohne das Serverzertifikat zu überprüfen, wenn der Parameter auf True festgelegt ist. Wenn Sie den Parameter weglassen oder auf False festlegen, werden keine Daten gesendet, wenn die Zertifikatsüberprüfung fehlschlägt.

Der Parameter ResposenSizeLimit ist die maximale Nutzlastgröße (Byte ), die das Gerät als Antwort vom Server akzeptiert. Wenn die Antwortnutzlast größer als diese maximale Größe ist, gibt der Befehl einen Statusfehler zurück. Die Fehlermeldung besagt, dass die maximale Dateigröße überschritten wurde. Serverseitig hat dies jedoch keine Auswirkungen. Der Server hat die Anforderung ordnungsgemäß empfangen und verarbeitet.

Verwenden Sie den Parameter ResultBody , um zu entscheiden, wie der Text der HTTP-Antwort vom Server im Befehl result formatiert werden soll. Sie haben drei Möglichkeiten:

  • Keine: Fügen Sie den Text der HTTP-Antwort nicht in das Befehlsergebnis ein.

  • Base64 : Base64 kodiert den Text, bevor er in das Ergebnis aufgenommen wird.

  • PlainText: Fügen Sie den Text als Nur-Text in das Ergebnis ein. Wenn die Antwort nicht druckbare Buchstaben enthält, gibt der Befehl einen Statusfehler mit einer Meldung zurück, die besagt, dass nicht druckbare Daten gefunden wurden.

Verwenden Sie den Parameter Timeout, um einen Timeout-Zeitraum (Sekunden) festzulegen. Wenn die Anforderung innerhalb dieses Zeitraums nicht abgeschlossen wird, gibt die API einen Fehler zurück.

Geben Sie die Nutzlast (Daten) direkt nach der Ausgabe des Befehls ein. Alles, was Sie eingeben, einschließlich Zeilenumbrüche, ist Teil der Nutzlast. Wenn Sie fertig sind, beenden Sie mit einem Zeilenumbruch ("\n") und einer separaten Zeile, die nur einen Punkt enthält, gefolgt von einem Zeilenumbruch (".\n"). Jetzt wird der Befehl ausgeführt und die Daten werden an den Server gesendet.

Beispiele

Der Text der Nachricht ist in diesen beiden Beispielen JSON. Dabei kann es sich um ein beliebiges Format handeln, abhängig vom erwarteten Format des Diensts, der die Nachrichten empfängt.

Beispiel 1: IoT-Gerätesteuerung mit HTTP POST

Hier ist eine Makrofunktion, die ein Licht einschaltet, das mit einer Philips Hue Bridge verbunden ist:

 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); } 

Sie können dasselbe in der Befehlszeile mit API tun:

 xcommand HttpClient PUT Header: "Content-Type: application/json" URL: "http://192.0.2.10/API/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

Beispiel 2: Daten mit HTTP # in ein Monitoring-Tool posten POST

 xcommand HttpClient POST Header: "Content-Type: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message":"Ein Benutzer hat ein Problem mit diesem System gemeldet","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} . 

Weitere Informationen

Weitere Informationen zur Verwendung von HTTP-Clientanforderungen finden Sie im Anpassungshandbuch . Wählen Sie die neueste Version aus.

Cisco Support (TAC) unterstützt nicht das Debuggen von Code von Drittanbietern, einschließlich Makros. Bitte überprüfen Sie https://roomos.cisco.com , wenn Sie Hilfe mit Makros und Code von Drittanbietern benötigen.

War dieser Artikel hilfreich für Sie?
War dieser Artikel hilfreich für Sie?