How to read Bearer token from the rest service from openedge

Posted by Sivarami Reddy Marella on 18-Jul-2018 09:40

Dear Team,

I am unable to read all the header values which are available in the rest service get method. The below is the piece of code I am trying. Especially I want read the bearer token as it is there in the attachment. I am getting only two values loop header 1 and loop header 2.

(Procedure: 'geturl Vendor.p' Line:325) loop header 1

[18/07/18@09:08:22.250-0400] P-139392 T-124924 1 AS -- (Procedure: 'geturl Vendor.p' Line:325) Host

[18/07/18@09:08:22.250-0400] P-139392 T-124924 1 AS -- (Procedure: 'geturl Vendor.p' Line:325) localhost:8080

[18/07/18@09:08:22.250-0400] P-139392 T-124924 1 AS -- (Procedure: 'geturl Vendor.p' Line:325) loop header 2

[18/07/18@09:08:22.250-0400] P-139392 T-124924 1 AS -- (Procedure: 'geturl Vendor.p' Line:325) User-Agent

[18/07/18@09:08:22.250-0400] P-139392 T-124924 1 AS -- (Procedure: 'geturl Vendor.p' Line:325) OpenEdge-HttpClient/0.3.0 (WIN32/32) OpenEdge/11.5.1.0.1190 Lib-ABLSockets/0.3.0  

DEFINE INPUT  PARAMETER CVcode        AS CHARACTER    NO-UNDO.
    define variable cHostname as longchar.
    cHostname = System.Net.Dns:GetHostName().
    message "cHostname" string(cHostname).
    DEFINE VARIABLE oLib        AS OpenEdge.Net.HTTP.IHttpClientLibrary NO-UNDO.
    DEFINE VARIABLE oHttpClient AS OpenEdge.Net.HTTP.IHttpClient        NO-UNDO.
    DEFINE VARIABLE oRequest    AS IHttpRequest                         NO-UNDO.
    DEFINE VARIABLE oResponse   AS IHttpResponse                        NO-UNDO.
    DEFINE VARIABLE oEntity AS Object NO-UNDO.
    DEFINE VARIABLE cURL AS CHAR NO-UNDO.
    DEFINE VARIABLE hXmlDoc AS HANDLE NO-UNDO.
    define variable oHeader      as class OpenEdge.Net.HTTP.HttpHeader         NO-UNDO.
define variable oHeaderArray as class OpenEdge.Net.HTTP.HttpHeader extent   NO-UNDO.
define variable iHeaderCount as       integer                           no-undo.
define variable i-loop as       integer                           no-undo
.
   
    cURL = 'http://' + string(cHostname) + ':8080/Vendorinfo/rest/Vendorinfo/Vendorinfo/' + CVcode.
    message "cURL123" cURL.
    ASSIGN
        oLib        = ClientLibraryBuilder:Build():sslVerifyHost(NO):library
        oHttpClient = ClientBuilder:Build():UsingLibrary(oLib):Client
        oRequest    = RequestBuilder:Get(cURL):AcceptAll():Request
        oResponse   = ResponseBuilder:Build():Response.
    message "error 456" error-status:error.
    oHttpClient:Execute(oRequest, oResponse).   
    oEntity = oResponse:Entity.
   
/*     oHeader = oResponse:GetHeader('').*/
    
     iHeaderCount = oRequest:GetHeaders(oHeaderArray).
/*     GetParameterValues ()*/
    
do i-loop = 1 to iHeadercount:
               MESSAGE
                 "loop header" i-loop    SKIP
                 ""   oHeaderArray[i-loop]:Name   SKIP
                 ""   oHeaderArray[i-loop]:Value     SKIP
                 .
                 if i-loop = iHeadercount then leave.
               end.
   
    IF TYPE-OF(oEntity, JsonObject) THEN
        CAST(oEntity, JsonObject):WriteFile('c:\temp\entity.json', true).
    ELSE
    DO:
        message "invalid json" .
    END. 

Thanks,

Sivarami Reddy M

All Replies

This thread is closed