באמצעות פקודות מאקרו, באפשרותך לשלוח נתונים לשרת HTTP(S) בכל עת שתצטרך. יש לך שליטה על אילו נתונים נשלחים וכיצד הם מאורגנים, מה שמקל על ההתאמה של הנתונים לשימוש עם שירותים קיימים.
אמצעי אבטחה:
-
תכונת בקשת לקוח HTTP(S) מושבתת כברירת מחדל. מנהל מערכת חייב להפעיל במפורש את התכונה על-ידי הגדרת
למופעל (xConfiguration HttpClient מצב: ב-
). -
מנהל המערכת יכול למנוע את השימוש ב-HTTP על ידי הגדרת
ל-False (xConfiguration HttpClient AllowHTTP: שקר
). -
מנהל המערכת יכול לציין רשימה של שרתי HTTP(S) שההתקן רשאי לשלוח אליהם נתונים. (עיין בפקודות
xCommand HttpClient Allow Hostname
.) -
מספר הבקשות המקבילות ל-HTTP(S) מוגבל.
התצורות המופיעות במאמר זה זמינות הן מממשק האינטרנט של המכשיר והן ב-API. פקודות זמינות דרך ה-API. קרא את מאמר הגדרות מתקדמות לקבלת מידע על אופן הגישה לממשק האינטרנט והשימוש ב-API.
רשימה של שרתי HTTP(S) מורשים
מנהל המערכת יכול להשתמש בפקודות אלה כדי להגדיר ולתחזק רשימה של עד עשרה שרתי HTTP(S) מורשים (מארחים):
-
xCommand HttpClient אפשר שם מארח הוסף ביטוי:
-
xCommand HttpClient אפשר שם מארח נקה
-
רשימת שמות מארח xCommand HttpClient אפשר
-
xCommand HttpClient אפשר שם מארח הסר מזהה:
אם הרשימה מכילה ערכי שרתים, ניתן לשלוח בקשות HTTP(S) רק לשרתים אלה. עם זאת, אם הרשימה ריקה, באפשרותך לשלוח בקשות לכל שרת HTTP(S).
הבדיקה מול רשימת השרתים המותרים מתבצעת הן בעת שימוש בהעברת נתונים לא מאובטחת (HTTP) והן בהעברת נתונים מאובטחת (HTTPS).
HTTPS ללא אימות תעודה
בעת שליחת בקשות באמצעות HTTPS, המכשיר בודק את האישור של שרת ה-HTTPS כברירת מחדל. אם תעודת שרת ה-HTTPS לא נמצאה חוקית, תקבל הודעת שגיאה. המכשיר לא שולח נתונים כלשהם לשרת הזה.
מומלץ להשתמש ב-HTTPS עם אימות אישור. אם אימות התעודה אינו אפשרי, מנהל המערכת יכול להגדיר את xConfiguration HttpClient AllowInsecureHTTPS: ב-
). זה מאפשר שימוש ב-HTTPS מבלי לאמת את התעודה של השרת.
שליחת בקשות HTTP
לאחר שתכונת בקשת לקוח HTTP(S) מופעלת, באפשרותך להשתמש בפקודות הבאות כדי לשלוח בקשות לשרת HTTP(S).
הוא הודעה
, Put
, Patch
, Get
או מחק
.
-
xCommand HttpClient [AllowInsecureHTTPS: ] [כותרת: ] [ResponseSizeLimit: ] [ResultBody: ] [סיום זמן הפעלה: ] כתובת URL:
הוספת שדות כותרת היא אופציונלית, וניתן להוסיף עד 20 שדות.
לפרמטר AllowInsecureHTTPS
יש השפעה רק אם מנהל המערכת אפשר להשתמש ב-HTTPS מבלי לאמת את התעודה של השרת. אם כן, תוכל לשלוח נתונים לשרת מבלי לאמת את אישור השרת אם הפרמטר מוגדר כ- True
. אם תשאיר את הפרמטר, או תגדיר אותו כ- False
, הנתונים לא יישלחו אם אימות התעודה נכשל.
הפרמטר ResposenSizeLimit
הוא גודל המטען המקסימלי (בתים) שהמכשיר מקבל כתגובה מהשרת. אם תוכן מנה התגובה גדול יותר מהגודל המקסימלי הזה, הפקודה מחזירה שגיאת מצב. הודעת השגיאה אומרת שחורגת מגודל הקובץ המקסימלי. עם זאת, אין לכך השפעה על הצד של השרת; השרת קיבל ועיבד את הבקשה כראוי.
השתמש בפרמטר ResultBody
כדי להחליט כיצד לעצב את הגוף של תגובת HTTP מהשרת בתוצאת הפקודה. יש לך שלוש אפשרויות:
-
ללא
: אל תכלול את הגוף של תגובת HTTP בתוצאת הפקודה. -
Base64
: Base64 מקודד את הגוף לפני הכללתו בתוצאה. -
טקסט
רגיל
: כלול את הגוף בתוצאה כטקסט רגיל. אם התגובה מכילה אותיות שאינן ניתנות להדפסה, הפקודה מחזירה שגיאת מצב עם הודעה המציינת שנתקלו בנתונים שאינם ניתנים להדפסה.
השתמש בפרמטר סיום זמן הפעלה
כדי להגדיר תקופת סיום זמן הפעלה (שניות). אם הבקשה לא הושלמה במהלך תקופה זו, ה-API מחזיר שגיאה.
הזן את המטען (הנתונים) מיד לאחר הוצאת הפקודה. כל מה שאתה מזין, כולל הפסקות קו, הוא חלק מהמטען. בסיום, סיים עם הפסקה של קו ("\n") וקו נפרד המכיל נקודה ולאחריה הפסקה של קו (".\n"). עכשיו הפקודה מבוצעת, והנתונים נשלחים לשרת.
דוגמאות
גוף ההודעה הוא JSON בשתי הדוגמאות האלה. זה יכול להיות כל פורמט, בהתאם לתבנית הצפויה של השירות שמקבל את ההודעות.
דוגמה 1: בקרת מכשיר IoT באמצעות HTTP Post
הנה פונקציית מאקרו שמדליקה אור המחובר לגשר של פיליפס:
פונקציה hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; var headers = 'סוג תוכן: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'כותרת': כותרות }, פקודה); }
ניתן לעשות את אותו הדבר בשורת הפקודה באמצעות ה-API:
xcommand HttpClient Put כותרת: "סוג תוכן: כתובת URL של application/json: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
דוגמה 2: פרסום נתונים לכלי ניטור באמצעות HTTP Post
xcommand HttpClient Post כותרת: "סוג תוכן: כתובת URL של application/json: "https://mymonitoringserver.com/service/devicemonitoring" {"הודעה":"משתמש דיווח על בעיה במערכת זו","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"Dual"} .
פרטי שותף
מצא פרטים נוספים על אופן השימוש בבקשות לקוח HTTP ב מדריך התאמה אישית . בחר את הגרסה האחרונה.
התמיכה של Cisco (TAC) אינה תומכת באיתור באגים של קוד צד שלישי, כולל פקודות מאקרו. בדוק https://roomos.cisco.com אם אתה זקוק לעזרה עם פקודות מאקרו וקוד צד שלישי.