HTTPAPI (LIBHTTP) on IBM i is the bomb. Luckily I am not boarding a plane at the moment, so I can use that kind of language without getting strip searched by some burly TSA agents.
After spending far too long investigating various techniques to get my IBM i system to talk to an external website (Authorize.net in this case) and being led down many wrong roads… I stumbled across scott’s collection of open source RPGLE programs called HTTPAPI.
In Scott’s words:
Download HTTP API source:
This is an RPG IV service program that uses socket calls to implement the HTTP 1.1 protocol. The HTTP protocol is the data transfer protocol that is used to transfer documents over the World Wide Web.
This service program can, optionally, also do “https” (HTTP over SSL) requests to an SSL-enhanced web server.
This is a powerful utility with many uses, so I’m opening it up to the world. Since this has only been tested for a few applications with a few servers, I’m looking for people to help out with testing, documentation and maybe even with new features.
In short – its a collection of programs in a library called LIBHTTP which you simply download and install on your IBM i system.
Thats it… now look at the various example programs and you will quickly see how easy it is to build a SOAP packet (containing your XML data string that you want to send to the web service) and then send it, get a response back and voila!
I spent last night playing with this, writing some RPGLE sample routines and once I had got my head around SOAP SERVER, SOAP ACTION and MERCHANT ID and MERCHANT KEY — I was quickly getting responses back from Authorize.net straight into my RPGLE programs. Simply Brilliant.
So, now its time to write a bunch of programs performing the whole Credit Card payment process for IBM i (‘AS400’ to you 1980’s luddites) written all in wonderful IBM RPG language.
*sigh* happy days….
IBM i Software Developer, Digital Dad, AS400 Anarchist, RPG Modernizer, Alpha Nerd and Passionate Eater of Cheese and Biscuits. Nick Litten Dot Com is a mixture of blog posts that can be sometimes serious, frequently playful and probably down-right pointless all in the space of a day. Enjoy your stay, feel free to comment and in the words of the most interesting man in the world: Stay thirsty my friend.
How to Upload a SAVF with IBM I ACS a.k.a. Upgrade HTTPAPI (LIBHTTP) to V7.2
Why use IBM i RDi?
How to Debug HTTPAPI RPG Programs – dsplnk ‘/tmp/httpapi_debug.txt’
RPG example: Talk to a Webservice and store reply XML or JSON in IFS
Developerworks Connections Sunset – How to Extend RDi
Copying iSeries fields from numeric to Alpha – aka using SQL to change column data type
What is IBM i Email and SPF?
Updating Numeric DTAARA in RPGLE
How to capture IBM-i job info for submitted jobs