我们需要从基于IBM AS400的rpg/iseries程序访问https api。
为此,我们安装了"Mocha W32 TN5250",但无法连接到会话。
是否可以从基于IBM AS400的rpg/iseries程序进行https调用?
常用的方法是使用Scott Klement的http包
当我们需要从我们使用的供应商那里调用web服务时,我们会使用它。
在SQL中,您可以使用HTTP函数由IBM在SYSTOOLS中提供
请参阅IBM PartnerWorld白皮书。
只需将SQL嵌入您的RPG程序中。
例如:
dcl-s city varchar(60);
dcl-s state varchar(2);
dcl-s zip varchar(10);
dcl-s area varchar(3);
dcl-s zone varchar(3);
EXEC SQL
SELECT city, state, zip, areacode, timezone
INTO :city, :state, :zip, :area, :zone
FROM XMLTABLE('$doc/NewDataSet/Table' PASSING
XMLPARSE(DOCUMENT SYSTOOLS.HTTPGETCLOB('http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=49525','')) AS "doc"
COLUMNS
City VARCHAR(60) PATH 'CITY',
State VARCHAR(2) PATH 'STATE',
Zip VARCHAR(10) PATH 'ZIP',
AreaCode VARCHAR(3) PATH 'AREA_CODE',
TimeZone VARCHAR(3) PATH 'TIME_ZONE'
) AS WebServiceResult
;
Brad Stone在BVS Tools-GetURI的解决方案提供了一个命令行界面和一个API,我们已经使用它成功地使用了许多web服务。
(这里提到的是一个可能比Scott的更轻的替代品-绝对不是对Scott或他的工具的不尊重!)