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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

إرسال طلبات HTTP

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

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

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

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

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

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

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

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

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

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

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

الأمثلة

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

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

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

 الدالة 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 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 إذا كنت بحاجة إلى مساعدة بشأن وحدات الماكرو ورمز الجهة الخارجية.