باستخدام وحدات الماكرو، يمكنك إرسال البيانات إلى خادم HTTP(S) كلما احتجت إلى ذلك. يمكنك التحكم في البيانات التي يتم إرسالها وكيفية تنظيمها، مما يسهل تعديل البيانات لاستخدامها مع الخدمات الحالية.
التدابير الأمنية:
-
يتم تعطيل ميزة طلب عميل HTTP (S) افتراضيًا. يجب أن يقوم مسؤول النظام بتمكين الميزة بشكل صريح عن طريق إعداد
إلى تشغيل (xConfiguration وضع HttpClient: في
). -
يستطيع مسؤول النظام منع استخدام HTTP عن طريق تعيين
إلى False (xConfiguration HttpClient AllowHTTP: خطأ
). -
يمكن لمسؤول النظام تحديد قائمة بخوادم HTTP (S) التي يسمح للجهاز بإرسال البيانات إليها. (ارجع إلى أوامر
xCommand HttpClient السماح باسم المضيف
.) -
عدد طلبات HTTP (S) المتزامنة محدود.
التكوينات المشار إليها في هذه المقالة متاحة من واجهة ويب الجهاز وفي واجهة برمجة التطبيقات. تتوفر الأوامر من خلال واجهة 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(S)
بمجرد تمكين ميزة طلب عميل HTTP (S)، يمكنك استخدام الأوامر التالية لإرسال الطلبات إلى خادم HTTP (S).
هو إما نشر
، أو وضع
، أو تصحيح
، أو الحصول
، أو حذف
.
-
xCommand HttpClient [AllowInsecureHTTPS: ] [العنوان: ] [ResponseSizeLimit: ] [ResultBody: ] [المهلة: ] عنوان Url:
تعد إضافة حقول العنوان اختيارية، ويمكنك إضافة ما يصل إلى 20 حقلاً.
تكون للمعلمة AllowInsecureHTTPS
فعالة فقط إذا سمح مسؤول النظام باستخدام HTTPS دون التحقق من صحة شهادة الخادم. إذا كان الأمر كذلك، فيمكنك إرسال البيانات إلى الخادم دون التحقق من صحة شهادة الخادم إذا تم تعيين المعلمة على صواب
. إذا تركت المعلمة، أو قمت بتعيينها على خطأ
، لا يتم إرسال البيانات إذا فشل التحقق من صحة الشهادة.
المعلمة ResposenSizeLimit
هي الحد الأقصى لحجم الحمولة (بالبايت) الذي يقبله الجهاز كاستجابة من الخادم. إذا كانت حمولة الاستجابة أكبر من هذا الحجم الأقصى، فسيرجع الأمر خطأ الحالة. رسالة الخطأ تقول أنه تم تجاوز الحد الأقصى لحجم الملف. ومع ذلك، ليس لهذا أي تأثير على جانب الخادم؛ فقد تلقى الخادم الطلب ومعالجته بشكل صحيح.
استخدم معلمة ResultBody
لتحديد كيفية تنسيق نص استجابة HTTP من الخادم في نتيجة الأمر. لديك ثلاثة خيارات:
-
لا شيء
: لا تقم بتضمين نص استجابة HTTP في نتيجة الأمر. -
القاعدة64
: يقوم Base64 بتشفير النص قبل تضمينه في النتيجة. -
نص عادي
: قم بتضمين النص الموجود في النتيجة كنص عادي. إذا كانت الاستجابة تحتوي على أحرف غير قابلة للطباعة، فسيرجع الأمر خطأ الحالة مع رسالة تفيد بمواجهة بيانات غير قابلة للطباعة.
استخدم معلمة المهلة
لتعيين فترة مهلة (بالثواني). إذا لم يتم إكمال الطلب خلال هذه الفترة، تقوم واجهة API بإرجاع خطأ.
أدخل الحمولة (البيانات) مباشرةً بعد إصدار الأمر. أي شيء تقوم بإدخاله، بما في ذلك فواصل الخطوط، هو جزء من الحمولة. عند الانتهاء، ينتهي بكسر خط ("\n") وخط منفصل يحتوي على فترة متبوعة بكسر خط (".\n"). الآن يتم تنفيذ الأمر، ويتم إرسال البيانات إلى الخادم.
الأمثلة
نص الرسالة هو JSON في كلا المثالين. يمكن أن يكون أي تنسيق، بناءً على التنسيق المتوقع للخدمة التي تتلقى الرسائل.
المثال رقم 1: التحكم في جهاز IoT باستخدام HTTP Post
فيما يلي دالة ماكرو تقوم بتشغيل الضوء المتصل بجسر Philips Hue:
الوظيفة hue_command(البيانات) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; عناوين var = 'Content-Type: application/json'؛ أمر var = '{"on":true}'؛ xapi.command('HttpClient Put'، {'Url': عنوان url، "العنوان": العناوين }، الأمر)؛ }
يمكنك القيام بالشيء نفسه على سطر الأوامر باستخدام API:
عنوان وضع HttpClient لـ xcommand: "نوع المحتوى: عنوان URL الخاص بالتطبيق/json: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} .
المثال رقم 2: نشر البيانات في أداة مراقبة باستخدام HTTP Post
عنوان بريد xcommand HttpClient: "نوع المحتوى: عنوان URL الخاص بالتطبيق/json: "https://mymonitoringserver.com/service/devicemonitoring" {"رسالة":"أبلغ أحد المستخدمين عن مشكلة في هذا النظام"،"systemName":"BoardRoom الطابق 4"،"softwareVersion":"ce9.6.0"،"softwareReleaseDate":"2018-12-13"،"videoMonitors":"Dual"} .
معلومات الشريك
تعرَّف على المزيد من التفاصيل عن كيفية استخدام طلبات عميل HTTP في دليل التخصيص . اختر أحدث إصدار.
لا يدعم دعم Cisco (TAC) تصحيح أخطاء رمز الطرف الثالث، بما في ذلك وحدات الماكرو. يرجى التحقق مما https://roomos.cisco.com إذا كنت تحتاج إلى مساعدة بشأن وحدات الماكرو ورمز جهة خارجية.