使用 macros,您可以在需要時將資料傳送至 HTTP(S) 伺服器。您可以控制要傳送的資料及其組織方式,從而輕鬆地調整資料以用於現有的服務。
安全性措施:
-
HTTP(S) 用戶端請求功能預設為停用。系統管理員必須透過設定明確啟用該功能
至開啟 (x組態 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。如果無法進行憑證驗證,系統管理員可以設定 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 和第三方代碼的幫助。