Salesforce

Getting started with HTTP client for OpenEdge

« Go Back

Information

 
TitleGetting started with HTTP client for OpenEdge
URL NameIs-there-an-HTTP-client-for-OpenEdge
Article Number000174779
EnvironmentProduct: OpenEdge
Version: 11.5.1, 11.6, 11.7.x, 12.x
OS: All supported platforms
Other: HTTP client
Question/Problem Description
Is there an HTTP client for OpenEdge ? 
Is there a REST client for OpenEdge ?
How to call a REST Service from an OpenEdge client?
How to communicate with an HTTP server using the OpenEdge client.
How to consume a REST Service from an ABL/4GL character based application?
How to make HTTP(S) requests from ABL applications
Using and ABL Client to Consume REST Web Service (HTTP)
How to make a HTTPS call from an OpenEdge ABL client with authentication?
How to make a HTTP GET request using SSL from an ABL client?
How to use ABL API to call / consume REST services?
Is there an ABL API to interact with http server / services?
Why do deployed ABL applications using HTTP(S) requests fail with error 12886
 

 

Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution

OpenEdge 11.5.1 introduced an official HTTP / REST client which allows HTTP(S) requests from ABL applications:

OpenEdge Development: Programming Interfaces, Input/Output Processes, Making HTTP(S) requests from ABL applications
https://docs.progress.com/bundle/openedge-programming-interfaces-117/page/Making-HTTPS-requests-from-ABL-applications.html

The HTTP Client feature is installed as the OpenEdge.Net.pl procedure library:

  • HTTP Client is included with all client run-time (GUI, TTY, batch and AppServer) and Development products
  • OpenEdge.Net.pl is added in the DLC/gui/netlib, DLC/tty/netlib install directories and the source is in DLC/src/netlib. 
  • This procedure library is added to the PROPATH as part of the install tailoring for Development environments, but the OpenEdge.Net.pl needs to  be added to the PROPATH as part of Client application deployment procedures which will otherwise fail with error 12886.  Refer to Article:  OpenEdge.Net.pl is missing from PROPATH  


Before 11.5.1:
Customers on OpenEdge versions between 10.2x and 11.5 could use the .NET HttpClient. However, unlike the ABL HTTP Client, this code can only be used on Windows platforms:
How to consume a REST Webservice from an OpenEdge Client?


Using the HTTP Client:

Sample code:

Attached to this article is HttpClient.zip which contains a PDSOE project with a couple of sample code files showing how to use the HttpClient. These are derived mostly from the articles which are references below.
 

Making Requests:

Simple GET Request:
 How to perform a simple GET request using the HttpClient?

Simple POST Request:
 How to create a POST request using the OpenEdge HttpClient?

Post an empty message:
 How to POST an empty request using OpenEdge HttpClient?
How to POST\PUT an empty request using OpenEdge HttpClient?

SOAP request:
How to consume a SOAP webservice without WSDL using Http Client ?
Is it possible to connect to a SOAP-based WebService without WSDL from ABL client?

MTOM (Message Transmission Optimization Mechanism) Requests
Does the OpenEdge Web Service client support MTOM?

Setting Options:

Consuming REST Web Services using OpenEdge ABL Client:
 How to consume a REST Webservice from an OpenEdge Client?

Set a Connect Timeout Value(in Milliseconds):
 How to set the Connection Timeout for a request using OpenEdge HttpClient?

Set Socket Options to be used by the HttpClient Socket:
 How to set socket options using OpenEdge HttpClient?

Default values for HttpClient Timeouts/Retries Options:
 What are the defaults for HTTP client timeouts/retries ?

Using -nohostverify using OpenEdge HttpClient:
 How to use -nohostverify with the ABL HTTPClient?

Connecting the HttpClient to a proxy:
How to use the HttpClient to connect via a proxy server?

Setting the body of a request:
How to send a string as the Request Body with the OpenEdge HTTP client
 

PASOE:

Fetch a list of Applications from a PASOE instance:
 How to call into the OEManager's REST API for insight into PASOE?
 How to get the list of applications from a PASOE Agent using OE Manager's REST API?
 

Handling Responses:

Working with MultiPart Messages using the HttpClient:
 How to work with MultiPart Messages using HttpClient?

Overriding default MultiPartEntityWriter in HttpClient:
 Example - Overriding default MultiPartEntityWriter in httpClient

Parsing an XML Document returned by the HttpClient:
 How to parse XML document received via HTTP client ?

HttpClient Support for Compressed (gzip) Messages:
 Does OpenEdge Httpclient support compressed (gzip) messages ?
 Handling compressed/zipped responses in httpclient

Using JSON documents with the HttpClient
 How to send and receive a simple JSON document with the ABL HTTP Client
How to store JSON from an HTTP service in a temp-table

Saving attachments received by HttpClient:
How to save attachments from SOAP response with HTTP client

Troubleshooting:

Logging Raw HTTP messages with OpenEdge HttpClient:
 How to log raw HTTP messages with OpenEdge Http client

Performance issues?
Tips to improve ABL HTTP client performance

Memory leak considerations:
Do HTTP Client objects need to be deleted?
 

Security:

Creating a Client Principal that is useful to both ABL Clients and Browsers:
 How to create a CP usable by both ABL clients and browsers.

Using HTTP Authentication using the HttpClient:
 How to use HTTP authentication with the HTTP client?

Using Basic Authentication using the HttpClient:
 How to use Basic Authentication with HTTP client ?

Post a form-encoded message based on a series of name-value pairs:
 How to post a FORM-ENCODED message using OpenEdge HttpClient?

Set SSL Ciphers and Protocols to use in a Request:
 How to set TLS/SSL protocols and ciphers to use in the HTTP client?

Client side Certificates in the HttpClient:
Does Progress support client-side digital certificates with SSL?
 

Workaround
Notes

References to Other Documentation:
“OpenEdge.Net.HTTP.” OpenEdge API Code Documentation
documentation.progress.com/output/oehttpclient/oe117/index.html.

Develop an HTTP client application in ABL
https://docs.progress.com/bundle/openedge-abl-develop-http-clients-122/page/Develop-an-HTTP-client-application-in-ABL.html


Progress Article(s):
Does OpenEdge Httpclient support compressed (gzip) messages ?
Error 12886 when running a HTTP request from an ABL application
How to use -nohostverify with the ABL HTTPClient?

What are the defaults for HTTP client timeouts/retries?
How to log raw HTTP messages with OpenEdge Http client
How to use Basic Authentication with HTTP client?

How to parse XML document received via HTTP client?
How to create a CP usable by both ABL clients and browsers?
Handling compressed/zipped responses in httpclient.
How to consume a REST Webservice from an OpenEdge Client?
Example - Overriding default MultiPartEntityWriter in httpClient
How to use HTTP authentication with the HTTP client?
How to work with MultiPart Messages using HttpClient?
How to call into the OEManager's REST API for insight into PASOE?
OpenEdge.Net.pl is missing from PROPATH
How to perform a simple GET request using the HttpClient?
How to create a POST request using the OpenEdge HttpClient?
How to post a FORM-ENCODED message using OpenEdge HttpClient?
How to POST an empty request using OpenEdge HttpClient?
How to set the Connection Timeout for a request using OpenEdge HttpClient?
How to set socket options using OpenEdge HttpClient?
How to get the list of applications from a PASOE Agent using OE Manager's REST API?
How to send and receive a simple JSON document with the ABL HTTP Client
How to use the HttpClient to connect via a proxy server?
How to consume a SOAP webservice without WSDL using Http Client ?
Is it possible to connect to a SOAP-based WebService without WSDL from ABL client?
How to send a string as the Request Body with the OpenEdge HTTP client
Tips to improve ABL HTTP client performance
Does the OpenEdge Web Service client support MTOM?
How to save attachments from SOAP response with HTTP client
Does Progress support client-side digital certificates with SSL?
Do HTTP Client objects need to be deleted?
How to store JSON from an HTTP service in a temp-table
How to POST\PUT an empty request using OpenEdge HttpClient?
 

Keyword Phrase
Last Modified Date3/9/2023 4:28 PM

Powered by