[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Render Telerik Report from my ABL program

Status
Not open for further replies.
D

Dmitry Lishafaev

Guest
Sample code to get token and get report list from server USING OpenEdge.Net.HTTP.*. USING OpenEdge.Net.Uri. USING Progress.Json.ObjectModel.JsonObject. USING Progress.Json.ObjectModel.*. USING OpenEdge.Core.STRING. USING PROGRESS.Lang.OBJECT. &GLOBAL-DEFINE username dmi &GLOBAL-DEFINE password pwd /******* debug **********/ log-manager:logfile-name = 'c:\dev\get_applications.log'. log-manager:logging-level = 6. log-manager:clear-log(). /******* debug **********/ DEF VAR oURI AS URI NO-UNDO. DEF VAR oRequestBody AS STRING NO-UNDO. DEF VAR oRequest AS IHttpRequest NO-UNDO. DEF VAR oResponse AS IHttpResponse NO-UNDO. DEF VAR oClient AS IHttpClient NO-UNDO. DEF VAR oEntity AS Object NO-UNDO. DEF VAR oJResponse AS JsonObject NO-UNDO. DEF VAR chToken AS CHAR NO-UNDO. ASSIGN oURI = NEW URI('http','armor',83) oURI:path = 'Token' oRequestBody = new String('grant_type=password&username={&username}&password={&password}') oRequest = RequestBuilder:post(oUri, oRequestBody) :ContentType('application/x-www-form-urlencoded') :AcceptJson() :REQUEST oResponse = ResponseBuilder:Build():Response oClient = ClientBuilder:Build():KeepCookies(CookieJarBuilder:Build():CookieJar):Client . oClient:EXECUTE(oRequest, oResponse) NO-ERROR. IF oResponse:StatusCode <> 200 THEN DO: MESSAGE 'Request Error: ' + STRING(oResponse:StatusCode). RETURN ERROR. END. oEntity = oResponse:Entity. IF TYPE-OF(oEntity, JsonObject) THEN oJResponse = CAST(oEntity, JsonObject). ELSE DO: MESSAGE 'ERROR: Cannot understand response from service' VIEW-AS ALERT-BOX. RETURN ERROR. END. oJResponse:WriteFile('c:\dev\response.json', TRUE). chToken = oJResponse:getJsonText('access_token'). MESSAGE chToken VIEW-AS ALERT-BOX. /************ Now we have a token ***********/ ASSIGN oURI:path = 'api/reportserver/v2/reports' oRequest = RequestBuilder:GET (oUri) :AcceptJson() :AddHeader("Authorization", "Bearer " + chToken) :REQUEST oResponse = ResponseBuilder:Build():Response oClient = ClientBuilder:Build():KeepCookies(CookieJarBuilder:Build():CookieJar):Client . oClient:EXECUTE(oRequest, oResponse) NO-ERROR.

Continue reading...
 
Status
Not open for further replies.
Top