此功能可讓 Board、Desk 或 Room 系列裝置透過 HTTPs 伺服器發起和接收 HTTPs 請求。 這些設備支援發佈、放置、修補、獲取和刪除等方法,允許與伺服器進行不同的交互。
利用巨集,可隨時傳送資料到 HTTPs 伺服器。 您可以控制發送哪些數據及其組織方式,從而可以輕鬆調整數據以用於現有服務。
安全性措施:
-
HTTP(S) 客戶端請求功能預設設定為停用。 系統管理員必須通過將 HttpClient
On (xConfiguration HttpClient Mode: On)
來顯式啟用該功能。 -
系統管理員可以通過將
設為 False (xConfiguration HttpClient AllowHTTP:False
)來阻止使用 HTTP。 -
系統系統管理員可以指定允許裝置傳送資料的目標 HTTP(S) 伺服器清單。 (請檢視
xCommand HttpClient 允許主機名
命令。) -
同時可發出的HTTP(S) 請求數是有限制的。
此文章參考組態可同時從裝置 Web 介面和 API 組態使用。 可通過API獲得命令。 讀取進階設定文章以取得如何存取 Web 介面和使用 API 的相關資訊。
允許的 HTTP(S) 伺服器清單
系統管理員可以使用下列指令設定及維護最多十個允許的 HTTP(S) 伺服器(主機)清單:
-
xCommand HttpClient 允許主機名稱新增運算式:<符合 HTTP(S) 伺服器之主機名稱或 IP 位址的規則運算式 >
-
xCommand HttpClient 允許主機名稱清除
-
xCommand HttpClient 允許主機名稱清單
-
xCommand HttpClient 允許主機名稱移除 ID:<清單中的項目 ID>
如果清單包含伺服器條目,則只能向這些伺服器發送 HTTPs 請求。 但是,若清單為空,則可以傳送請求至任何 HTTPs 伺服器。
當使用非安全 (HTTP) 和安全 (HTTPS) 資料轉接時,同時執行允許的伺服器清單檢查。
HTTPS - 無憑證驗證
透過 HTTPS 傳送請求時 ,裝置會依預設檢查 HTTPS 伺服器的憑證。 如果發現到 HTTPS 伺服器憑證無效,您會收到錯誤訊息。 裝置不會傳送任何資料至該伺服器。
建議透過憑證驗證使用 HTTPS。 如果無法驗證憑證,系統管理員可以將 HttpClient
)。 此允許使用 HTTPS 而不驗證伺服器的憑證。
傳送 HTTPs 請求
HTTP(S) 客戶端請求功能驗證後,您可以使用下列指令傳送 Post 及 Put 請求至 HTTP(S) 伺服器: <方式>
Post
, Put
, Patch
, Get
, 或 Delete
。
-
xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <最大回應大小>] [ResultBody: <None/PlainText/Base64>] [Timeout: <Timeout period>] Url: <將要求傳送到的 URL>
新增標題欄位是選用的,您最多可新增 20 個欄位。
只有在系統管理員已允許使用 HTTPS 而不驗證伺服器的憑證時,AllowInsecureHTTPS
參數才會有效果。 若如此,如果參數設定為 True
,您可以傳送資料至伺服器而不驗證伺服器憑證。 若忽略參數或設定為 False
,當憑證驗證失敗時將不傳送資料。
該 ResponseSizeLimit
參數是裝置可接受自伺服器的最大有效負載回應之大小(位元)。 如果回應有效負載大於此最大大小,則該命令將回傳狀態錯誤訊息, 為已超出最大文件大小。 但這並不影響伺務器端,因伺服器已正確接收並處理了請求。
使用 ResultBody
參數以決定命令結果中來自伺服器的 HTTP 回應的主要內容的格式。 您將有三個選擇:
-
無
:不要在命令結果中包含 HTTP 回應的內容。 -
Base64 編碼
:Base64 在結果中放入回應內容之前對其進行編碼。 -
純文字
:將回應內容以純文字格式放入結果中。 若回應包含不可列印的字母,則該命令將回傳遭遇不可列印資料的狀態錯誤訊息。
使用逾時
參數設置逾時時間(秒)。 如果在此期間未完成請求,則 API 會回傳錯誤。
已發出指令後,可直接輸入負載(資料)。 輸入的任何資料包括分行符號,均屬於負載的一部分。 完成時,以分行符號 ("\n") 結束,而分隔行只包含一個句點後加分行符號 (".\n")。 此時已執行指令,且資料已傳送至伺服器。
範例
在下列兩個範例中,訊息的本文是 JSON。 格式不限,完全取決於接收訊息的服務的預期格式。
範例 1:使用 HTTP Post 的 IoT 裝置控制
以下是可開啟連接至 Philips Hue Bridge 燈號的巨集功能:
函數 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”:“一位使用者報告此系統的問題”,“systemName”:“BoardRoom 4th floor ”,“softwareVersion”:“ce9.6.0”,“softwareReleaseDate”:“2018-12-13”,“videoMonitors”:“Dual”} 。
詳細資訊
在自訂指南尋找有關如何使用 HTTP 客戶端請求的詳細資訊。 請選擇最新版本。
Cisco 支援 (TAC) 不支援第三方程式碼(包括巨集)的偵錯。 如果您需要宏和第三方代碼方面的説明,請檢查 https://roomos.cisco.com 。