マクロを使用すると、必要なときに HTTP(S)サーバーにデータを送信できます。送信されるデータと組織化方法を制御できるため、既存のサービスで使用するためにデータを簡単に適応できます。

セキュリティ対策:

  • HTTP(S) クライアント要求機能はデフォルトで無効になっています。システム管理者は、 [HttpClient] > [モード][オン] に設定することで、この機能を明示的に有効にする必要があります ( [xConfiguration HttpClient モード:)。

  • システム管理者は、 [HttpClient] > [AllowHTTP][False] に設定することで、HTTP の使用を防ぐことができます ( xConfiguration HttpClient AllowHTTP: False )。

  • システム管理者は、デバイスがデータの送信を許可する HTTP(S) サーバーのリストを指定できます。( xCommand HttpClient Allow Hostname コマンドを参照してください。)

  • 同時 HTTP(S) リクエストの数は制限されています。

この記事で説明されている設定は、デバイスの Web インターフェイスと API の両方から利用できます。コマンドは API 経由で利用できます。ウェブ インターフェイス へのアクセス方法と API の使用方法に関する詳細は、詳細設定の記事をお読みください。

許可された HTTP(S) サーバーのリスト

システム管理者は、これらのコマンドを使用して最大 10 個の HTTP (S) サーバー (主催者) の設定および管理を行います。

  • xCommand HttpClient Allow Hostname Add Expression:

  • xCommand HttpClient がホスト名のクリアを許可する

  • xCommand HttpClient クライアントのホスト名一覧の許可

  • xCommand HttpClient Allow Hostname Remove Id:

リストにサーバ エントリが含まれている場合、これらのサーバに HTTP(S)要求のみ送信できます。ただし、リストが空の場合、任意の HTTP(S)サーバーに要求を送信できます。

安全ではない (HTTP) およびセキュアな (HTTPS) のデータ転送の両方を使用する場合、許可されているサーバーのリストに対するチェックが実行されます。

証明書検証なしの HTTPS

HTTPS 経由でリクエストを送信する場合、デバイスはデフォルトで HTTPS サーバーの証明書をチェックします。HTTPS サーバー証明書が有効でないと見つからない場合は、エラーメッセージが表示されます。デバイスはサーバーにデータを送信しません。

証明書の検証には HTTPS を使用することをお勧めします。証明書の検証ができない場合、システム管理者は [HttpClient] > [AllowInsecureHTTPS][オン] に設定できます ( xConfiguration HttpClient AllowInsecureHTTPS:)。これにより、サーバーの証明書を確認することなく HTTPS を使用できます。

HTTP(S) リクエストの送信

HTTP(S) クライアント要求機能が有効になると、次のコマンドを使用して HTTP(S) サーバーに要求を送信できます。 は、 Post Put Patch Get 、または Delete のいずれかです。

  • xCommand HttpClient [AllowInsecureHTTPS: ] [ヘッダー: ] [ResponseSizeLimit: ] [ResultBody: ] [タイムアウト: ] Url:

ヘッダー フィールドの追加はオプションで、最大 20 個のフィールドを追加できます。

AllowInsecureHTTPS パラメータは、システム管理者がサーバーの証明書を検証せずに HTTPS の使用を許可している場合にのみ有効になります。その場合、パラメータが [True] に設定されている場合、サーバー証明書を検証せずにサーバーにデータを送信できます。パラメータを省略するか、 [False] に設定すると、証明書の検証が失敗した場合にデータは送信されません。

ResposenSizeLimit パラメータは、デバイスがサーバーからの応答として受け入れられる最大ペイロードサイズ (バイト) です。応答ペイロードがこの最大サイズより大きい場合、コマンドはステータス エラーを返します。エラーメッセージには最大ファイルサイズを超えたと表示されます。しかし、これはサーバー側には影響しません。サーバーが要求を適切に受け取り、処理している必要があります。

ResultBody パラメータを使用して、コマンド結果でサーバーからの HTTP 応答の本文をフォーマットする方法を決定します。以下の 3 つのオプションを選択できます。

  • なし: コマンド結果に HTTP 応答の本文を含めないようにします。

  • Base64: 結果に含まれる前に、本文に Base64 エンコードを行います。

  • プレーンテキスト: 結果にプレーンテキストとして本文を含めます。応答に印刷できない文字が含まれている場合、印刷できないデータが発生したことを知らせるメッセージが表示されます。

[タイムアウト] パラメータを使用して、タイムアウト期間 (秒) を設定します。この期間にリクエストが完了しない場合、API はエラーを返します。

コマンドを発行した直後にペイロード (データ) を入力します。改行を含めて入力した何ものは、ペイロードの一部です。完了したら、休憩("\n")と、期間を含む別の回線で終了し、その後に休憩(".\n")を入力します。コマンドが実行され、データがサーバーに送信されます。

メッセージの本文は、これらの両方の例の JSON です。メッセージを受信するサービスの期待される形式に応じて、任意の形式である場合があります。

例 1: HTTP Post を使用した IoT デバイス コントロール

以下は、明るい色の色を変えるマクロ機能です。

 機能 hue_command(データ) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'Content-Type: アプリケーション/json ';var コマンド = ' {"on": true} ';xapi コマンド (' HttpClient Put ', {' Url ': url、' Header ': ヘッダー}、コマンド);} 

API を使用してコマンドラインからも同じことができます。

 xcommand HttpClient Put ヘッダー: "Content-Type: application/json" URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} 。 

例 2: HTTP Post を使用してデータを監視ツールに投稿する

 xcommand HttpClient Post ヘッダー: "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"} 

詳細情報

HTTP クライアント要求の使い方の詳細については、カスタマイズガイドを 参照してください 。最新バージョンを選択します。

Cisco サポート (TAC) は、マクロを含むサードパーティ コードのデバッグはサポートされていません。マクロとサードパーティのコードについてヘルプが必要な場合は、https://roomos.cisco.com 確認してください。