マクロを使用することで、いつでも HTTP(S) サーバーにデータを送信できます。 どのデータを送信し、必要に合った構成を行うのかを選択できます。 この方法でデータを既存のサービスに適応することができます。

セキュリティ対策:

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

  • システム管理者は、httpClient 設定で HTTP を False に許可> HTTP の使用をぐことが可能です ( xConfiguration HttpClient AllowHTTP: False )。

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

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

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

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

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

  • xCommand HttpClient Allow Hostname Add Expression: <Regular expression that matches the host name or IP address of the HTTP(S) server>

  • xCommand HttpClient Allow Hostname Clear

  • xCommand HttpClient Allow Hostname List

  • xCommand HttpClient Allow Hostname Remove Id: <id of an entry in the list>

リストが空ではない場合、HTTP(S) リクエストをリスト内のサーバーにのみ送信できます。 リストが空の場合は、任意の HTTP(S) サーバーに要求を送信できます。

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

証明書の検証なしの HTTPS

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

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

HTTP(S) リクエストを送信する

HTTP(S) クライアント要求機能が有効になると、次のコマンドを使用して、HTTP サーバーに要求を送信できます。 <method> は、どちらかです Post Put Patch Get 、または 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>

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

この AllowInsecureHTTPS パラメータは、サーバーの証明書を確認せずに、システム管理者が HTTPS の使用を許可している場合にのみ、効果があります。 この場合、パラメータが次に設定されている場合は、サーバー証明書を検証することなくサーバーにデータを送信できます。 True . パラメータを外す場合、あるいは次に設定します。 False 、証明書の検証が失敗した場合、データは送信されません。

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

イベント、登録者、出席者にすばやくアクセスするため、 ResultBody パラメータを選択して、コマンド結果のサーバーから HTTP 応答の本文をフォーマットする方法を決定します。 以下の 3 つのオプションを選択できます。

  • None : コマンド結果に HTTP 応答の本文を含め設定してください。

  • Base64 : Base64 は結果に含む前に本文をエンコードします。

  • PlainText : 結果の本文をプレーンテキストとして含める。 応答に非一文が含まれる場合、コマンドは、非一日データが見つかったというメッセージを含むステータスエラーを返します。

イベント、登録者、出席者にすばやくアクセスするため、 Timeout パラメータを使用してタイムアウト期間を設定します (秒)。 この期間にリクエストが完了しない場合、API はエラーを返します。

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

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

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

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


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

API を使用してコマンドラインで同じことを行います。


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

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


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

詳細情報

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

Cisco サポート (TAC) は、マクロを含むサードパーティ コードのデバッグはサポートされていません。 マクロおよびサードパーティ コードのヘルプが必要な場合は、Cisco Collaboration Developer コミュニティを確認してください。 また、このサイトには多くの開発者および統合リソースがあります。