這是我最喜歡的平台IBMI的簡單CGI.ServicePorgram。
此服務程序處理傳入和傳出流到STD-IO。
複製SourceFiles並在您自己的庫中編譯它們
啟動您的管理員服務器: 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用戶封裝:
使用以下方式在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“高級” - “ Internet-user”一起添加
啟動新的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
歷史日誌信息:
https://yourIP:port/targetlib/historylogs?start=2021-07-11&end=2021-07-12&query=brc
作業日誌信息:
https://yourIP:port/targetlib/joblogs?job=067435/QUSER/QZDASOINIT&limit=20
對象統計信息:
https://yourIP:port/targetlib/objectinfos?lib=yajl&objtype=*file
或用我用vb.net編寫的小型Windows應用程序嘗試它們:
https://github.com/pantalonorange/control-for-ibm-i
gethttpinput:讀取流並填充“ request_method”等必要變量,依此類推。
這些值寫入“ InputParmds”變量。
writehttpout:在這裡我們可以寫入IO-STD
Gethttpheader:確定HTTP標頭的簡單過程
getValuebyName從參數中獲取逐個名稱的值
vtranslatedata:在不同的CCSID之間轉換數據。
ICONV用於翻譯。
PARSECORSTRING:“ QUERY_STRING”在這裡解析。
“ ID = 1&test = 5”變為DS [ID = 1],[test = 2]
SeperateValues:從“ Parequerystring”中解析的數據進一步簡化了。
“ id = 1”或“ test = 5”變為ds [{id} {1}]或[{test} {5}]