Exemplo de WebSpeed acessando rota Rest SSL com CURL Código: using OpenEdge.Net.HTTP.*. using OpenEdge.Net.URI. using Progress.Json.ObjectModel.*. USING Progress.Lang.Object. DEFINE VARIABLE i-cod-sistema AS INTEGER NO-UNDO INITIAL 8. DEFINE VARIABLE i-cod-banco AS INTEGER NO-UNDO INITIAL 14. DEFINE INPUT PARAMETER cCode AS CHARACTER. DEFINE INPUT PARAMETER cHostWebSpeed AS CHARACTER. DEFINE INPUT PARAMETER cHostLaravel AS CHARACTER. DEFINE OUTPUT PARAMETER cToken AS CHARACTER. DEFINE VARIABLE cURL AS CHARACTER NO-UNDO. DEFINE VARIABLE cPRT AS CHARACTER NO-UNDO. DEFINE VARIABLE cPATH AS CHARACTER NO-UNDO. DEFINE VARIABLE iPort AS INTEGER NO-UNDO. DEFINE VARIABLE cCommand AS CHARACTER NO-UNDO. DEFINE VARIABLE cLinha AS CHARACTER NO-UNDO. DEFINE VARIABLE cRes AS LONGCHAR NO-UNDO. DEFINE VARIABLE authCode AS CHARACTER NO-UNDO. DEFINE VARIABLE oUri AS URI NO-UNDO. DEFINE VARIABLE oJson AS JsonObject NO-UNDO. DEFINE VARIABLE oJsonParser AS ObjectModelParser NO-UNDO. DEFINE VARIABLE client_id AS CHARACTER NO-UNDO. DEFINE VARIABLE client_secret AS CHARACTER NO-UNDO. DEFINE VARIABLE redirect_uri AS CHARACTER NO-UNDO. DEFINE VARIABLE cData AS CHARACTER NO-UNDO. DEFINE VARIABLE jArr AS JsonArray. DEFINE TEMP-TABLE tt-data FIELD grant_type as char FIELD client_id as char FIELD client_secret as char FIELD redirect_uri as char FIELD CODE as char SERIALIZE-NAME "code". FOR FIRST idb-param-integr WHERE idb-param-integr.cod-sistema = i-cod-sistema AND idb-param-integr.cod-banco = i-cod-banco AND idb-param-integr.ativo NO-LOCK, EACH idb-param-integr-banco WHERE idb-param-integr-banco.cod-banco EQ idb-param-integr.cod-banco NO-LOCK: CASE idb-param-integr-banco.parametro: WHEN "URL" THEN ASSIGN cURL = idb-param-integr-banco.valor. WHEN "PROTOCOLO" THEN ASSIGN cPRT = idb-param-integr-banco.valor. WHEN "PATHGETTOKEN" THEN ASSIGN cPATH = idb-param-integr-banco.valor. WHEN "PORT" THEN ASSIGN iPort = int(idb-param-integr-banco.valor). WHEN "client_id" THEN ASSIGN client_id = idb-param-integr-banco.valor. WHEN "client_secret" THEN ASSIGN client_secret = idb-param-integr-banco.valor. WHEN "redirect_uri" THEN ASSIGN redirect_uri = idb-param-integr-banco.valor. END CASE. END. LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - CODE: ' + cCode ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - URL: ' + cURL ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - PROTOCOLO: ' + cPRT ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - PATHGETTOKEN: ' + cPATH ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - client_id: ' + client_id ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - client_secret: ' + client_secret ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - redirect_uri: ' + redirect_uri ). IF cURL EQ '' THEN RETURN "NOK":U. oUri = new URI(cPRT, cURL). oURI:Path = cPATH. ASSIGN authCode = cCode . CREATE tt-data. ASSIGN tt-data.grant_type = "authorization_code" tt-data.client_id = client_id tt-data.client_secret = client_secret tt-data.redirect_uri = redirect_uri tt-data.CODE = authCode. jArr = NEW JsonArray(). TEMP-TABLE tt-data:WRITE-JSON("JsonArray", jArr). assign cData = replace(STRING(jArr:GetJsonObject(1):GetJsonText()),'~"','~\~"'). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - authCode: ' + authCode ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - cData: ' + cData ). ASSIGN cCommand = SUBSTITUTE('&1 -X POST -H "&2" -H "&3" -d "&4" &5 --insecure --silent --show-error', SEARCH('curl.exe'), "Content-Type: application/json", "Accept: application/json", cData, oURI:ToString() ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - Comando : ' + cCommand ). INPUT THROUGH VALUE(cCommand) CONVERT SOURCE "UTF-8". REPEAT: IMPORT UNFORMATTED cLinha NO-ERROR. LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - cLinha : ' + string(cLinha) ). ASSIGN cRes = cRes + cLinha + " ". END. INPUT CLOSE. cRes = CODEPAGE-CONVERT(cRes, "UTF-8":U). ASSIGN oJsonParser = NEW ObjectModelParser() oJson = CAST(oJsonParser:Parse(cRes), JsonObject). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - oJson : ' + string(oJson:GetJsonText()) ). ASSIGN cToken = string(oJson:GetJsonText( 'access_token' ) ). LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - TOKEN' + cToken). RETURN "OK".