マクロを使用すると、必要なときに HTTP(S)サーバーにデータを送信できます。送信されるデータと組織化方法を制御できるため、既存のサービスで使用するためにデータを簡単に適応できます。
セキュリティ対策:
-
HTTP(S) クライアント要求機能はデフォルトで無効になっています。システム管理者は、
を [オン] に設定することで、この機能を明示的に有効にする必要があります ([xConfiguration HttpClient モード:
)。 -
システム管理者は、
を [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 を使用することをお勧めします。証明書の検証ができない場合、システム管理者は 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 確認してください。