Question What is the best way to make an httpRequest using a progress client application?


New Member
System details:
Progress 11.6
Windows 10

Just wondering if anyone would have a suggestion with regards to the best way of making an httpRequest using a progress client application.
Currently we are making use of "MSXML2.XMLHTTP.6.0" but it seems to be causing errors on some computers (18/60 are not working).
Thinking it is something to do with the msxml dependency but not sure.

Would it be better to use sockets or is there a better way out there?

As I am fairly new to progress please do let me know if you need any more information.

Thank you for any advice or help given in advance.


"best" always depends on your specific requirements.

There are tradeoffs to be made. For instance, you *appear* to be stuck in a Windows environment. Do you want (or need) to escape that strait-jacket? Or does being locked in to Microsoft comfort you in some way? Are you comfortable with the OO-4gl? Do you have experience writing 4gl socket code? Are the target APIs following any particular standards? Or are they an ad-hoc mishmash of gunk thrown together by chipmunks chittering away and churning out kode as rapidly as possible?

Having said all that and not knowing your answers... the "modern" approach most likely suggested/endorsed by Progress would be to use the class library: Progress KB - Is there an HTTP client for OpenEdge?


Well-Known Member
From my experience:

If you are on Windows I would go straight ahead with the .NET HTTP client. No matter what other people might say, I use it now for years and it is rock solid - but you are then stuck to Windows. When you need to present an SSL client certificate to the Server then the HTTP client for OpenEdge does not support it. As part of our internal single-sign-on we need to present the SSL client certificate representing the user identity to any backend server that talks HTTPS. Strong authentication ...

If you want to be platform independent and you don't need the SSL client certificate then you should go for the HTTP client for OpenEdge. If you need the SSL client certificate you can go for wget or curl. Personally I prefer wget over curl and I used it successfully on Windows and Unix/Linux. But interfacing with wget or curl will always lead to additional file handling and therefore performance might not be good enough or the handling somewhat clumsy.

Hope that helps.


19+ years progress programming and still learning.
Sometimes I find using cURL is the best solution, especially if I have to use client side certificates.