باستخدام وحدات الماكرو، يمكنك إرسال البيانات إلى خادم HTTPs عندما تحتاج إلى ذلك. يمكنك التحكم في البيانات التي يتم إرسالها وكيفية تنظيمها، مما يجعل من السهل تكييف البيانات للاستخدام مع الخدمات الحالية.

تدابير أمنية:

  • يتم تعطيل ميزة طلب عميل HTTPs بشكل افتراضي. يجب على مسؤول النظام تمكين الميزة بشكل صريح من خلال تعيين HttpClient > الوضع على تشغيل ( وضع xConfiguration HttpClient: تشغيل ).

  • يمكن لمسؤول النظام منع استخدام HTTP عن طريق ضبط HttpClient > AllowHTTP على خطأ ( xConfiguration HttpClientallowHTTP: خطأ ).

  • يمكن لمسؤول النظام تحديد قائمة بخوادم HTTPs التي يُسمح للجهاز بإرسال البيانات إليها. (راجع أوامر xCommand HttpClient السماح لاسم المضيف .)

  • عدد طلبات HTTPs المتزامنة محدود.

تتوفر التكوينات المشار إليها في هذه المقالة من واجهة الويب الخاصة بالجهاز وفي ملف API. الأوامر متاحة من خلال API. اقرأ مقالة الإعدادات المتقدمة للحصول على معلومات حول كيفية الوصول إلى واجهة الويب واستخدام API.

قائمة خوادم HTTPs المسموح بها

يمكن لمسؤول النظام استخدام هذه الأوامر لإعداد وصيانة قائمة تضم ما يصل إلى عشرة خوادم (مضيفين) HTTPs مسموح بها:

  • xCommand HttpClient السماح بإضافة تعبير لاسم المضيف: <تعبير عادي يطابق اسم المضيف أو عنوان IP لخادم HTTPs>

  • xCommand HttpClient يسمح بمسح اسم المضيف

  • xCommand HttpClient السماح بقائمة أسماء المضيفين

  • xCommand HttpClient السماح بإزالة معرف إزالة اسم المضيف: <معرف الإدخال في القائمة>

إذا كانت القائمة تحتوي على إدخالات خادم، فيمكنك فقط إرسال طلبات HTTPs إلى تلك الخوادم. ومع ذلك، إذا كانت القائمة فارغة، فيمكنك إرسال الطلبات إلى أي خادم HTTPs.

يتم إجراء التحقق من قائمة الخوادم المسموح بها عند استخدام نقل البيانات غير الآمن (HTTP) والآمن (HTTPS).

HTTPS دون التحقق من صحة الشهادة

عند إرسال الطلبات عبر HTTPS، يتحقق الجهاز من شهادة خادم HTTPS بشكل افتراضي. إذا لم يتم العثور على شهادة خادم HTTPS صالحة، فستحصل على رسالة خطأ. ولا يرسل الجهاز أي بيانات إلى هذا الخادم.

نوصي باستخدام HTTPS مع التحقق من صحة الشهادة. إذا لم يكن التحقق من صحة الشهادة ممكنًا، فيمكن لمسؤول النظام تعيين HttpClient > AllowInsecureHTTPS على تشغيل ( xConfiguration HttpClientallowInsecureHTTPS: تشغيل ). يسمح هذا باستخدام HTTPS دون التحقق من صحة شهادة الخادم.

إرسال طلبات HTTPS

بمجرد تمكين ميزة طلب عميل HTTPs، يمكنك استخدام الأوامر التالية لإرسال الطلبات إلى خادم HTTPs. <الطريقة> إما أن منشور ، ضع ، التصحيح ، احصل على ، أو احذف .

  • xCommand HttpClient <الطريقة> [AllowInsecureHTTPS: <True/False>] [الرأس: <نص الرأس>] [ResponseSizeLimit: <الحد الأقصى لحجم الاستجابة>] [ResultBody: <لا شيء/نص عادي/Base64>] [المهلة: <فترة المهلة>] URL: <URL لإرسال الطلب إلى>

تعد إضافة حقول الرأس أمرًا اختياريًا، ويمكنك إضافة ما يصل إلى 20 حقلاً.

يكون للمعلمة AllowInsecureHTTPS تأثير فقط إذا سمح مسؤول النظام باستخدام HTTPS دون التحقق من صحة شهادة الخادم. إذا كان الأمر كذلك، فيمكنك إرسال البيانات إلى الخادم دون التحقق من صحة شهادة الخادم إذا تم تعيين المعلمة على صحيح . إذا تركت المعلمة، أو قمت بتعيينها على خطأ ، فلن يتم إرسال البيانات في حالة فشل التحقق من صحة الشهادة.

المعلمة ResposenSizeLimit هي الحد الأقصى لحجم الحمولة (البايت) الذي يقبله الجهاز كاستجابة من الخادم. إذا كانت حمولة الاستجابة أكبر من هذا الحجم الأقصى، فسيقوم الأمر بإرجاع خطأ في الحالة. تقول رسالة الخطأ أنه تم تجاوز الحد الأقصى لحجم الملف. ومع ذلك، هذا ليس له أي تأثير على جانب الخادم؛ لقد تلقى الخادم الطلب وقام بمعالجته بشكل صحيح.

استخدم ResultBody لتحديد كيفية تنسيق نص استجابة HTTP من الخادم في نتيجة الأمر. لديك ثلاثة خيارات:

  • لا شيء : لا تقم بتضمين نص استجابة HTTP في نتيجة الأمر.

  • Base64 : يقوم Base64 بتشفير النص قبل تضمينه في النتيجة.

  • نص عادي : قم بتضمين النص في النتيجة كنص عادي. إذا كانت الاستجابة تحتوي على أحرف غير قابلة للطباعة، فسيقوم الأمر بإرجاع خطأ حالة مع رسالة تفيد بوجود بيانات غير قابلة للطباعة.

استخدم المهلة المعلمة لتعيين فترة المهلة (بالثواني). إذا لم يكتمل الطلب خلال هذه الفترة، فسيُرجع API خطأً.

أدخل الحمولة (البيانات) مباشرة بعد إصدار الأمر. أي شيء تدخله، بما في ذلك فواصل الأسطر، يعد جزءًا من الحمولة. عند الانتهاء، انتهي بفاصل أسطر ("\n") وسطر منفصل يحتوي على نقطة فقط متبوعة بفاصل أسطر (".\n"). الآن يتم تنفيذ الأمر وإرسال البيانات إلى الخادم.

الأمثلة

نص الرسالة هو JSON في كلا المثالين. يمكن أن يكون أي تنسيق، اعتمادًا على التنسيق المتوقع للخدمة التي تتلقى الرسائل.

مثال 1: التحكم في جهاز إنترنت الأشياء باستخدام HTTP Post

فيما يلي وظيفة ماكرو تعمل على تشغيل الضوء المتصل بجسر Philips Hue:

 وظيفة hue_command(data) { var url = 'http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state'; رؤوس var = 'نوع المحتوى: application/json'; أمر var = '{"on":true}'; xapi.command('HttpClient Put', { 'Url': url, 'Header': headers }, Command); } 

يمكنك أن تفعل الشيء نفسه في سطر الأوامر باستخدام API:

 xcommand HttpClient ضع الرأس: "نوع المحتوى: application/json" عنوان URL: "http://192.0.2.10/api/'ZXlU4tUtQ23Pjbdyl-kiyCjTs0i5ANDEu1ypJq0-/lights/1/state" {"on":true} . 

مثال 2: نشر البيانات إلى أداة مراقبة باستخدام HTTP Post

 xcommand HttpClient Post Header: "نوع المحتوى: application/json" URL: "https://mymonitoringserver.com/service/devicemonitoring" {"Message": "أبلغ مستخدم عن مشكلة في هذا النظام"، "systemName": "BoardRoom 4th Floor"، "softwareVersion": " "ce9.6.0"، "softwareReleaseDate": "2018-12-13"، "videoMonitors": "Dual"} . 

مزيد من المعلومات

يمكنك العثور على مزيد من التفاصيل حول كيفية استخدام طلبات عميل HTTP في دليل التخصيص . اختر الإصدار الأحدث.

لا يدعم دعم Cisco (TAC) تصحيح أخطاء تعليمات برمجية خارجية، بما في ذلك وحدات الماكرو. يرجى المراجعة https://roomos.cisco.com إذا كنت بحاجة إلى مساعدة بشأن وحدات الماكرو والتعليمات البرمجية لجهة خارجية.