HTTP Requests via Authenticated Proxy - Forum - OpenEdge Development - Progress Community

HTTP Requests via Authenticated Proxy

 Forum

HTTP Requests via Authenticated Proxy

This question is not answered

A while back I posted this thread https://community.progress.com/community_groups/openedge_development/f/19/t/23788

At the time we decided to workaround the proxy issue with our own 4GL socket implementation and some external .net tools.

I've just installed 11.7.1, and am playing around with the http client again.

Is it possible to pass in username & password to the proxy server?  The request below is definitely hitting the proxy server as I'm getting a 302 (Auth Required back).

Tried both options below - is there another way to build the proxy client?  And is authenticated proxy server supported? Any top tips with this?

USING OpenEdge.Net.URI.
USING OpenEdge.Net.HTTP.IHttpRequest.
USING OpenEdge.Net.HTTP.IHttpResponse.
USING OpenEdge.Net.HTTP.IHttpClient.
USING OpenEdge.Net.HTTP.RequestBuilder.
USING OpenEdge.Net.HTTP.ClientBuilder.
 
DEFINE VARIABLE oRequest    AS IhttpRequest     NO-UNDO.
DEFINE VARIABLE oResponse   AS IhttpResponse    NO-UNDO.
DEFINE VARIABLE httpUrl     AS CHARACTER        NO-UNDO.

def var oClient as IHttpClient no-undo.

httpUrl = "http://www.theregister.co.uk".

oRequest = RequestBuilder:Get(httpUrl):Request.
oClient = new  OpenEdge.Net.HTTP.ProxyHttpClient(
                 ClientBuilder:Build():Client,
                 URI:Parse('username:password@proxyip:proxyport')).  
oResponse = oClient:Execute(oRequest).

/*
*** OR
*/

oRequest = RequestBuilder:Get(httpUrl):ViaProxy('username:password@proxyip:proxyport'):Request.
oResponse = ClientBuilder:Build():Client:Execute(oRequest).

MESSAGE
    oResponse:StatusCode
    oResponse:StatusReason
    view-as alert-box info.

Thanks

All Replies
  • The URI’s user/password values are not used for HTTP.
     
    Have you tried setting the Proxy-Authorization header?
     
     
    oRequest = RequestBuilder:Get(httpUrl)                               
                                                    :ViaProxy('proxyip:proxyport')
                                                    :AddHeader('Proxy-Authorization', base64-encode('name:pw'))    // or whatever
                                                    :Request.
     
  • In my post community.progress.com/.../34392 I have added a working example for a HTTP call with a proxy that uses basic authentication. I have used fiddler and curl in order to analyze the headers and understand the logic needed behind the authentication method.

    Do you have a working example for an HTTPS request behind a proxy? I have not succeeded on making an HTTPS call behind a proxy using OpenEdge.Net. If I use CURL that also uses OpenSSL it is working. Maybe this is a bug?