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

אמצעי אבטחה:

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

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

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

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

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

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

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

  • xCommand HttpClient Allow Hostname Add Expression: <ביטוי רגיל התואם לשם המחשב המארח או לכתובת IP של שרת הHTTP>

  • xCommand HttpClient אפשר ניקוי של Hostname

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

  • xCommand HttpClient אפשר Hostname Remove Id: מזהה < של ערך ברשימה>

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

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

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

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

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

שליחת בקשות HTTP

לאחר הפעלת תכונת בקשת לקוח HTTPs, באפשרותך להשתמש בפקודות הבאות כדי לשלוח בקשות לשרת HTTPs. <שיטה>היא או Post,Put,Patch,Get , או Delete.

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

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

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

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

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

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

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

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

השתמש בפרמטר פסק זמן כדי להגדיר פרק זמן קצוב (שניות). אם הבקשה לא הושלמה במהלך תקופה זו, 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 = 'Content-Type: application/json'; var command = '{"on":true}'; xapi.command('HttpClient Put', { 'URL': url, 'Header': headers }, command); } 

באפשרותך לעשות את אותו הדבר בשורת הפקודה באמצעות API:

 xcommand HttpClient שים כותרת: "סוג תוכן: יישום/json" כתובת URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

דוגמה 2: פרסום נתונים בכלי ניטור באמצעות HTTP Post

 xcommand כותרת פוסט HttpClient: "סוג תוכן: יישום/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"הודעה":"משתמש דיווח על בעיה במערכת זו","systemName":"BoardRoom 4th floor","softwareVersion":"ce9.6.0","softwareReleaseDate":"2018-12-13","videoMonitors":"כפול"} . 

מידע נוסף

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

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