هذا هو بلدي cgi.serviceporgram البسيطة لمنصة المفضلة IBMI.
هذا المراوغات المعالجة مع الجداول الواردة والصادرة إلى STD-IO.
نسخ ملفات المصدر وتجميعها في مكتبتك الخاصة
ابدأ خادم المشرف الخاص بك: STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN)
قم بإنشاء مثيل جديد لـ HTTP-Server
أضف الأجزاء التالية إلى HTTP-Config
ScriptAliasMatch /targetlib/(.*) /qsys.lib/targetlib.lib/$1
مصادقة ضد IBMI - userprofiles:
<Directory /qsys.lib/targetlib.lib>
SetEnv QIBM_CGI_LIBRARY_LIST "targetlib;YAJL;QHTTPSVR"
AuthType Basic
AuthName "Restricted Area"
PasswdFile %%SYSTEM%%
UserID %%CLIENT%%
Require valid-user
</Directory>
أو بدون IBMI userprofile مع قائمة التحقق من الصحة:
قم بإنشاء قائمة التحقق من الصحة على IBMI الخاص بك مع: CRTVLDL TARGETLIB/TEST .
قم بتغيير HTTP-CONF إلى ما يلي:
<Directory /qsys.lib/targetlib.lib>
SetEnv QIBM_CGI_LIBRARY_LIST "targetlib;YAJL;QHTTPSVR"
AuthType Basic
AuthName "Restricted Area"
PasswdFile targetlib/test
Require valid-user
</Directory>
أضف المستخدمين المسموح بهم مع HTTP-ADMIN "Advanced"-"مستخدم الإنترنت"
ابدأ خادم HTTP الجديد الخاص بك
جرب الأمثلة التي تم تسليمها:
معلومات المستخدم
https://yourIP:port/targetlib/userinfos?usrcls=secofr&exppwd=1&enabled=0
وظائف نشطة:
https://yourIP:port/targetlib/activejobs?sbs=qbatch&jobsts=msgw
أقفال الكائن:
https://yourIP:port/targetlib/objectlocks?lib=testlib&obj=customers
سجل التاريخ infos:
https://yourIP:port/targetlib/historylogs?start=2021-07-11&end=2021-07-12&query=brc
سجل الوظائف Infos:
https://yourIP:port/targetlib/joblogs?job=067435/QUSER/QZDASOINIT&limit=20
الكائن الإحصائي infos:
https://yourIP:port/targetlib/objectinfos?lib=yajl&objtype=*file
أو جربهم مع تطبيق Windows الصغير المكتوب بـ VB.NET:
https://github.com/pantalonorange/control-for-ibm-i
Gethttpinput: يقرأ الدفق ويملأ المتغيرات اللازمة مثل "request_method" وما إلى ذلك.
تتم كتابة هذه القيم إلى متغير "InputParmds".
trusttpout: هنا يمكننا الكتابة إلى IO-STD
Gethttpheader: إجراء بسيط لتحديد رأس HTTP
GetValuebyName احصل على القيمة بالاسم من المعلمات
Vtranslatedata: تحويل البيانات بين مختلف CCSID.
يستخدم ICONV للترجمة.
parequerystring: يتم تحليل "Query_String" هنا.
"المعرف = 1 واختبار = 5" يصبح ds [id = 1] ، [test = 2]
Seperatevalues: تم تبسيط البيانات المحسورة من "parequerystring" هنا إلى أبعد من ذلك.
يصبح "id = 1" أو "test = 5" ds [{id} {1}] أو [{test} {5}]