openedge.net.http within 11.4

Posted by dianne.evans@danwood.co.uk on 16-Sep-2015 06:07

Hi,

Environment: Openedge 11.4 on Linux.

I am writing code to send/receive messages on an MS Azure Servicebus Queue.(And probably to storage blobs too).  My current code builds up the resourceURI (including the SASToken security), and then drops into cURL to actually post the message.  It works OK, but I would like to find a better method if possible.

So I have been playing with the 11.4 openedge.net.http library, although I know that this was only a "preview" of things to come in v11.5.   Can anyone tell me what differences exist between my library and the one that is now in 11.5 (or even 11.5.1)?

Right now I am struggling to follow the examples within the 11.4 white paper (Making HTTP & RESP requests with openeedge.net.pl).  In particular, I'm struggling with

using OpenEdge.Net.UriSchemeEnum.

and then later:

objURI:Scheme = OpenEdge.Net.UriSchemeEnum.https.

which causes a syntax error.

[I have already put /dlc/tty/netlib/openedge/net/pl into my project's propath.  Also, other calls to the .net.pl, such as 'define variable oRequest as class httpRequest.'  are working OK]

 

Does anyone know if the above UriSchemeEnum should work, or am I trying to use a feature not ready within 11.4?

 

Lastly,  I also saw this previous post :- https://community.progress.com/community_groups/openedge_development/f/19/t/18318.aspx

It sounds like the licence might allow me to use of the latest .net library.   Can anyone tell me the steps I would need to follow, in order to obtain the 11.5.1 library and then access it from within 11.4?

 

 

All Replies

Posted by Peter Judge on 17-Sep-2015 20:21

Hi Dianne,

objURI:Scheme = OpenEdge.Net.UriSchemeEnum.https.

This will fail to compile since the Scheme property is defined with a private set. You must pass in the scheme and host (at a minimum) into the URI constructor.

So something like

Def var objURI as URI.

objURI = new URI('https', 'example.com').

Alternatively, use the static Parse method

objURI = URI:Parse('https://example.com').

If you have 11.5.1 installed, then the Linux-appropriate version will be in $DLC/tty/netlib .

hth

Posted by dianne.evans@danwood.co.uk on 30-Sep-2015 04:23

Peter,

Thank you for your reply.  That's what I had originally tried.

However, when I try to put a string into the line  objURI = new URI('https', 'myUrl.com'), I get the syntax error of:

"Parameter 1 for CONTRUCTOR URI is not type compatible with its definition (12905)"

Somehow I need to be able to access the options within UriSchemeEnum for the fisrt parameter.   (to change to https from the default http)

Posted by Peter Judge on 30-Sep-2015 08:15

Hi Dianne,

Got my versions mixed up. In 11.4 you need to use a UriSchemeEnum as the first argument. in later versions (11.5.1 and later) you can use a string value for the scheme.

def var oURI as OpenEdge.Net.URI.

assign oURI = new URI(OpenEdge.Net.UriSchemeEnum:Https, 'myUrl.com').



This thread is closed