自 Board、Desk 和 Room 系列裝置傳送 HTTP 請求
list-menu意見回饋?
此功能可讓 Board、Desk 或 Room 系列裝置透過 HTTPs 伺服器起始和接收 HTTPs 請求。 這些設備支援 POST, PUT, 修補、獲取和刪除等方法,允許與伺服器進行不同的交互。

利用巨集,可隨時傳送資料到 HTTPs 伺服器。 您可以控制發送哪些數據及其組織方式,從而可以輕鬆調整數據以用於現有服務。

安全措施:

  • 默認情況下,HTTPs 用戶端請求功能處於禁用狀態。 系統管理員必須通過將 HttpClient > Mode 設置為 On (xConfiguration HttpClient Mode:On 來顯式啟用該功能。

  • 系統管理員可以通過將 HttpClient > AllowHTTP 設為 False xConfiguration HttpClient AllowHTTP:False )來阻止使用 HTTP。

  • 系統管理員可以指定允許裝置傳送資料的目標 HTTPs 伺服器清單。 (請參見 xCommand HttpClient Allow Hostname 命令。)

  • 同時可發出的 HTTPs 請求數是有限制的。

本文中提到的組態可同時從裝置的 Web 介面和 API 中使用。 命令可通過 API 獲得。 有關如何訪問 Web 介面和使用 API 的資訊, 請閱讀高級設置文章

允許的 HTTPs 伺服器清單

系統管理員可以使用下列指令設定及維護最多十個允許的 HTTPs 伺服器 (主機) 清單:

  • xCommand HttpClient 允許主機名稱新增運算式:<與 HTTPs 伺服器的主機名稱或 IP 位址相符的標準運算式>

  • xCommand HttpClient 允許主機名稱清除

  • xCommand HttpClient 允許主機名稱清單

  • xCommand HttpClient 允許主機名稱移除 ID:<ID 清單中的項目>

如果清單包含伺服器條目,則只能向這些伺服器發送 HTTPs 請求。 但是,若清單為空,則可以傳送請求至任何 HTTPs 伺服器。

當使用非安全 (HTTP) 和安全 (HTTPS) 資料轉接時,同時執行允許的伺服器清單檢查。

HTTPS - 無憑證驗證

透過 HTTPS 傳送請求時,裝置會依預設檢查 HTTPS 伺服器的憑證。 如果發現到 HTTPS 伺服器憑證無效,您會收到錯誤訊息。 裝置不會傳送任何資料至該伺服器。

建議透過憑證驗證使用 HTTPS。 如果無法驗證憑證,系統管理員可以將 HttpClient >AllowInsecureHTTPS On xConfiguration HttpClient AllowInsecureHTTPS:On )。 此允許使用 HTTPS 而不驗證伺服器的憑證。

傳送 HTTPs 請求

啟用 HTTPs 用戶端請求功能後,可以使用以下命令將請求發送到 HTTPs 伺服器。 <method> 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 ,則在證書驗證失敗時不會發送數據。

ResposenSizeLimit 參數是裝置接受作為伺服器回應的最大有效負載大小 (位元組)。 如果回應有效負載大於此最大大小,則該命令將回傳狀態錯誤訊息, 錯誤消息指出已超過最大檔大小。 但是,這對伺服器端沒有影響;伺服器已正確接收並處理請求。

使用 ResultBody 參數確定如何在命令結果中設置來自伺服器的 HTTP 回應正文的格式。 您將有三個選擇:

  • 無:不要在命令結果中包含 HTTP 回應的正文。

  • Base64 :Base64 在將正文包含在結果中之前對其進行編碼。

  • 純文字 :將正文以純文本形式包含在結果中。 若回應包含不可列印的字母,則該命令將回傳遭遇不可列印資料的狀態錯誤訊息。

使用超時 參數設定逾時期限 (秒)。 如果在此期間未完成請求,則 API 會傳回錯誤。

發出指令後,直接輸入負載 (資料)。 輸入的任何資料包括分行符號,均屬於負載的一部分。 完成後,以換行符 (“\n”) 和僅包含句點後跟換行符的單獨行 (“.\n”) 結束。 此時已執行指令,且資料已傳送至伺服器。

範例

在下列兩個範例中,訊息的本文是 JSON。 它可以是任何格式,具體取決於接收消息的服務的預期格式。

範例 1:使用 HTTP POST 的 IoT 裝置控制

以下是打開連接到飛利浦 Hue 橋接器的燈的巨集功能:

 函數 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 標題:“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

本文是否有幫助?
本文是否有幫助?