עם פקודות מאקרו, אתה יכול לשלוח נתונים לשרת HTTPs בכל עת שתצטרך. יש לך שליטה על אילו נתונים נשלחים וכיצד הם מאורגנים, מה שמקל על התאמת הנתונים לשימוש עם שירותים קיימים.

אמצעי ביטחון:

  • תכונת בקשת הלקוח של HTTPs מושבתת כברירת מחדל. מנהל מערכת חייב להפעיל את התכונה במפורש על ידי הגדרת HttpClient > מצב ל On ( xConfiguration HttpClient Mode: On ).

  • מנהל המערכת יכול למנוע את השימוש ב-HTTP על ידי הגדרת HttpClient > AllowHTTP ל False ( xConfiguration HttpClient AllowHTTP: False ).

  • מנהל המערכת יכול לציין רשימה של שרתי HTTPs שהמכשיר רשאי לשלוח אליהם נתונים. (ראה את הפקודות xCommand HttpClient Allow Hostname ).

  • מספר בקשות HTTP בו-זמנית מוגבל.

התצורות המוזכרות במאמר זה זמינות הן מממשק האינטרנט של המכשיר והן ב-API. פקודות זמינות דרך API. קרא את מאמר הגדרות מתקדמות למידע כיצד לגשת לממשק האינטרנט ולהשתמש ב-API.

רשימת שרתי HTTP מותרים

מנהל המערכת יכול להשתמש בפקודות אלה כדי להגדיר ולתחזק רשימה של עד עשרה שרתי HTTPs (מארחים) מותרים:

  • xCommand HttpClient אפשר להוסיף שם מארח ביטוי: <ביטוי רגולרי התואם לשם המארח או כתובת IP של שרת ה-HTTP>

  • xCommand HttpClient אפשר לנקות את שם המארח

  • xCommand HttpClient אפשר רשימת שמות מארח

  • xCommand HttpClient אפשר שם מארח הסר מזהה: <מזהה של ערך ברשימה>

אם הרשימה מכילה ערכי שרת, אתה יכול לשלוח רק בקשות HTTPs לאותם שרתים. עם זאת, אם הרשימה ריקה, אתה יכול לשלוח בקשות לכל שרת HTTPs.

הבדיקה מול רשימת השרתים המותרים מתבצעת הן בעת ​​שימוש בהעברה לא מאובטחת (HTTP) והן בהעברת נתונים מאובטחת (HTTPS).

HTTPS ללא אימות אישור

בעת שליחת בקשות באמצעות HTTPS, המכשיר בודק את האישור של שרת ה-HTTPS כברירת מחדל. אם אישור שרת ה-HTTPS לא נמצא תקף, תקבל הודעת שגיאה. המכשיר לא שולח נתונים לשרת זה.

אנו ממליצים להשתמש ב-HTTPS עם אימות אישור. אם אימות אישור אינו אפשרי, מנהל המערכת יכול להגדיר HttpClient > AllowInsecureHTTPS ל מופעל ( xConfiguration HttpClient AllowInsecureHTTPS: On ). זה מאפשר שימוש ב-HTTPS מבלי לאמת את האישור של השרת.

שליחת בקשות HTTPs

לאחר שתכונת בקשת הלקוח HTTPs מופעלת, תוכל להשתמש בפקודות הבאות כדי לשלוח בקשות לשרת HTTPs. <method> הוא פוסט , Put , תיקון , קבל , או מחק .

  • xCommand HttpClient <Method> [AllowInsecureHTTPS: <True/False>] [Header: <Header text>] [ResponseSizeLimit: <גודל תגובה מקסימלי>] [ResultBody: <None/PlainText/Base64>] [תקופת זמן קצוב: > כתובת אתר: <כתובת אתר לשליחת הבקשה אל>

הוספת שדות כותרת היא אופציונלית, וניתן להוסיף עד 20 שדות.

לפרמטר AllowInsecureHTTPS השפעה רק אם מנהל המערכת איפשר את השימוש ב-HTTPS מבלי לאמת את האישור של השרת. אם כן, תוכל לשלוח נתונים לשרת מבלי לאמת את אישור השרת אם הפרמטר מוגדר ל True . אם תשאיר את הפרמטר, או תגדיר אותו ל False , הנתונים לא יישלחו אם אימות האישור נכשל.

הפרמטר ResposenSizeLimit הוא גודל המטען המרבי (בתים) שהמכשיר מקבל כתגובה מהשרת. אם עומס התגובה גדול מהגודל המרבי הזה, הפקודה מחזירה שגיאת סטטוס. הודעת השגיאה אומרת שחרג מגודל הקובץ המרבי. עם זאת, אין לכך השפעה על צד השרת; השרת קיבל ועיבד את הבקשה כראוי.

השתמש בפרמטר ResultBody כדי להחליט כיצד לעצב את גוף תגובת ה-HTTP מהשרת בתוצאת הפקודה. יש לך שלוש אפשרויות:

  • אין : אל תכלול את גוף תגובת ה-HTTP בתוצאת הפקודה.

  • Base64 : Base64 מקודד את הגוף לפני הכללתו בתוצאה.

  • PlainText : כלול את הגוף בתוצאה כטקסט רגיל. אם התגובה מכילה אותיות שאינן ניתנות להדפסה, הפקודה מחזירה שגיאת סטטוס עם הודעה שאומרת שנתקלו בנתונים שאינם ניתנים להדפסה.

השתמש בפרמטר זמן קצוב כדי להגדיר פרק זמן קצוב (שניות). אם הבקשה לא תושלם במהלך תקופה זו, ה-API מחזיר שגיאה.

הזן את המטען (נתונים) ישירות לאחר הוצאת הפקודה. כל מה שאתה מזין, כולל מעברי שורות, הוא חלק מהמטען. בסיום, סיים עם מעבר שורה ("\n") ושורה נפרדת המכילה רק נקודה ואחריה מעבר שורה (".\n"). כעת הפקודה מבוצעת, והנתונים נשלחים לשרת.

דוגמאות

גוף ההודעה הוא JSON בשתי הדוגמאות הללו. זה יכול להיות כל פורמט, בהתאם לפורמט הצפוי של השירות שמקבל את ההודעות.

דוגמה 1: בקרת מכשירי IoT באמצעות HTTP Post

הנה פונקציית מאקרו שמדליקה אור שמחובר לגשר Philips Hue:

 function 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":"כפול"} . 

מידע נוסף

מצא פרטים נוספים על אופן השימוש בבקשות לקוח HTTP ב- מדריך להתאמה אישית . בחר את הגרסה העדכנית ביותר.

תמיכת Cisco (TAC) אינה תומכת בניפוי באגים של קוד צד שלישי, כולל פקודות מאקרו. בבקשה תבדוק https://roomos.cisco.com אם אתה צריך עזרה עם פקודות מאקרו וקוד צד שלישי.