使用 macros,您可以在需要時將資料傳送至 HTTP(S) 伺服器。您可以控制要傳送的資料及其組織方式,從而輕鬆地調整資料以用於現有的服務。

安全性措施:

  • HTTP(S) 用戶端請求功能預設為停用。系統管理員必須透過設定明確啟用該功能 HTTPS 用戶端 > 模式開啟 x組態 Http用戶端模式:開啟)。

  • 系統管理員可透過設定 HTTPS 用戶端 > 允許 HTTP錯誤 x組態 Http用戶端允許的 HTTP:錯誤)。

  • 系統管理員可以指定允許裝置傳送資料至的 HTTP(S) 伺服器清單。(請參閱 x指令 HttpClient 允許主機名稱 指令。)

  • 並行 HTTP(S) 請求數有限制。

此文章中提及的設定可從裝置的Web 介面和在API中使用。指令可透過API。閱讀進 程式設定文章 ,以取得如何存取 Web 介面和使用 API 的資訊。

允許的 HTTP(S) 伺服器清單

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

  • xCommand HttpClient 允許主機名稱新增表達式:

  • xCommand HttpClient允許主機名清除

  • xCommand HttpClient允許主機名列表

  • xCommand HttpClient 允許主機名稱移除 ID:

如果清單包含伺服器項目,那麼您只能傳送 HTTP(S) 要求至這些伺服器。但是,如果清單為空,您可以傳送請求至任何 HTTP(S) 伺服器。

當使用不安全的 (HTTP) 和安全 (HTTPS) 資料傳送時,會執行與允許的伺服器清單之間的檢查。

不進行憑證驗證的 HTTPS

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

我們建議在憑證驗證中使用 HTTPS。如果無法進行憑證驗證,系統管理員可以設定 HTTPS 用戶端 > 允許不安全的HTTPS開啟 x配置 Http用戶端允許不安全的HTTPS:開啟)。這允許在不驗證服務器的憑證的情況下使用 HTTPS。

傳送 HTTP(S) 請求

當 HTTP(S) 用戶端請求功能啟用後,您可以使用以下指令將請求傳送到 HTTP(S) 伺服器。 發布 修補程式 取得,或 刪除

  • x指令 Http用戶端[允許不安全的 HTTPS: ] [標題: ] [回應大小限制: ] [結果主體: ] [逾時: ] URL:

新增標題欄位是可選的,您最多可以新增 20 個欄位。

允許不安全的HTTPS 僅當系統管理員在未驗證伺服器憑證的情況下允許使用 HTTPS 時,參數才有效。如果是,如果參數設定為,您可以將資料傳送至伺服器,而無需驗證伺服器憑證。。如果您遺漏了參數,或將其設定為 錯誤,如果憑證驗證失敗,則不會傳送資料。

響應大小限制 參數是裝置接受為伺服器回應的最大有效荷載大小(位元)。如果回應裝載大於此最大大小,則指令會返回狀態錯誤。錯誤訊息指出已超過檔案大小上限。然而,這對伺服器端沒有影響;伺服器已正確接收並處理請求。

使用 結果主體 參數來決定如何在指令結果中格式化來自伺服器的 HTTP 回應的內文。您具有三個選項:

  • :不要在命令結果中包含HTTP響應的主體。

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

  • 純文字:將結果中的正文作為純文本包含在內。如果響應包含不可打印的字母,則該命令將返回狀態錯誤,並顯示一條消息,指出遇到了不可打印的數據。

使用 逾時 參數以設定逾時時間(以秒計)。如果在此期間未完成請求,API 將返回錯誤。

發出指令後,輸入有效負載(資料)。您輸入的任何東西(包括換行)都是裝載的一部分。完成後,以分行符號(「\n」)和一行(僅包含一個期間,後跟分行符號(「.\n」)結束。現在,指令會執行,且資料會傳輸至伺服器。

範例

這兩個範例中的訊息內文為 JSON。它可以是任何格式,取決於接收訊息的服務的預期格式。

範例 1:使用 HTTP Post 進行 IoT 裝置控制

以下是可開啟連接至 Philips Hue Bridge 的燈的宏功能:

 功能hue_command(資料) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = '內容類型:應用/ JSON'; var command ='{“on”:true}'; xapi.command('HttpClient Put',{'Url':url,'標題':headers},command); } 

您可以使用API在命令行執行相同的操作:

 xcommand HTTP Client 放置標題:「內容類型:應用程式/json」 URL: 「http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} 。

範例 2:使用 HTTP Post 張貼資料至監控工具

 xcommand HTTPS 用戶端 Post 標頭:「內容類型:應用程式/json」 URL: 「https://mymonitoringserver.com/service/devicemonitoring" {"訊息":"使用者報告此系統有問題","systemName":"BoardRoom 4 樓","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","視訊監視器":"雙"} 。

進一步資訊

在自訂指南中尋找如何使用 HTTP 用戶端請求 的更多詳細資訊 。選擇最新版。

Cisco 支援 (TAC) 不支援協力廠商代碼(包括宏)的調試。請勾選https://roomos.cisco.com 您需要關於 macros 和第三方代碼的幫助。