1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Urgente API REST

Discussão em 'Progress 4GL' iniciado por Alexandre, Setembro 28, 2020.

  1. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Bom dia,

    Como quando a URL é um HTTPS ? aqui pra mim ocorre o seguinte erro quando tento fazer um get em um URI https:

    "Secure Socket Layer (SSL) failure. error code 0: Unknown SSL error (9318)"
  2. Renan Cano

    Renan Cano Membro Participativo

    Provavelmente a URL que vc está tentando usar requer uma autenticação, ai vc vai ter q informar essa informação de login e senha usando o oCredential e depois chama-la no momento em que faz a requisição.

    Você deve ter essa definição:
    USING OpenEdge.Net.HTTP.Credentials.

    DEFINE VARIABLE oCredentials AS Credentials NO-UNDO.

    Ai vc passa o login e senha para a variavel
    oCredentials = new Credentials('application', 'login', 'senha').

    depois vc chama isso na hora do request
    oReq = RequestBuilder:Get(httpUrl)
    :UsingBasicAuthentication(oCredentials)
    :Request.
  3. Cneves

    Cneves Membro Participativo

    Boa tarde, você conseguiu resolver esse problema? Estou na mesma situação.
  4. Cneves

    Cneves Membro Participativo

    Boa tarde, você conseguiu resolver esse problema? Estou na mesma situação.
  5. Cneves

    Cneves Membro Participativo

    Esse é o codigo que estou executando:

    Código:
    block-level on error undo, throw.
    
    using OpenEdge.Net.HTTP.ClientBuilder.
    using OpenEdge.Net.HTTP.Credentials.
    using OpenEdge.Net.HTTP.IHttpClient.
    using OpenEdge.Net.HTTP.IHttpRequest.
    using OpenEdge.Net.HTTP.RequestBuilder.
    using OpenEdge.Net.URI.
    using OpenEdge.Net.HTTP.IHttpResponse.
    using Progress.Json.ObjectModel.JsonObject.
    using Progress.Json.ObjectModel.JsonArray.
    USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder.
    
    
    
    /* ***************************  Main Block  *************************** */
    define variable oClient as IHttpClient no-undo.
    define variable oUri as URI no-undo.
    define variable oReq as IHttpRequest no-undo.
    define variable oResp as IHttpResponse no-undo.
    define variable oCreds as Credentials no-undo.
    define variable oJson as JsonObject no-undo.
    define variable oJsonArray as JsonArray no-undo.
    define variable oJsonObj as JsonObject no-undo.
    
    def var oJsonRespObj   as JsonObject         no-undo.       
    
    DEF VAR i AS INTEGER NO-UNDO.
    DEF VAR i2 AS INTEGER NO-UNDO.
    DEF VAR i3 AS INTEGER NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayProdutos AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonProduto AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayClientes AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonCliente AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayEnderecosEntrega AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonEnderecoEntrega AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oLib           AS OpenEdge.Net.HTTP.IHttpClientLibrary NO-UNDO.
    DEFINE VARIABLE oHttpClient    AS OpenEdge.Net.HTTP.IHttpClient        NO-UNDO.
    
    oClient = ClientBuilder:Build():Client.
    
    
    oCreds = new Credentials('basic', 'datasul', 'datasul').
    oCreds = new Credentials('application', 'datasul', 'datasul').
    
    oUri = new URI('https', 'core.apipass.com.br').
    oUri:Path = '/api/2d6e173e-0b8a-4d40-9ef0-8276f195e7b/analise-entrada-datasul'.
         oReq = RequestBuilder:Get(oUri,oJson)
                :AcceptJson()
                :UsingBasicAuthentication(oCreds)
                :Request.
    
    ASSIGN oLib        = ClientLibraryBuilder:Build():sslVerifyHost(NO):library
            oClient     = ClientBuilder:Build():UsingLibrary(oLib):Client.
    
    oResp = oClient:Execute(oReq).
    
    DEF VAR c-caminho AS CHAR NO-UNDO.
    ASSIGN c-caminho = "c:\temp\".
    
    IF TYPE-OF(oResp:Entity, JsonObject) THEN DO:
        MESSAGE "jsonObject"
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
        oJsonRespObj = CAST(oResp:Entity, JsonObject).
    
        CAST(oResp:Entity, JsonObject):WriteFile(c-caminho + 'teste-objeto.json', true).
    
        oJsonArray = oJsonRespObj:getJsonArray('value') NO-ERROR.
       
        MESSAGE 'achou: ' oJsonArray <> ?
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
        IF oJsonArray = ? OR oJsonArray:LENGTH <= 0 THEN DO:
            MESSAGE "vaziooo"
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
        END.
        ELSE DO:
    
            MESSAGE "Registros: " oJsonArray:LENGTH
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
        END.
    
    
    END.
  6. Cneves

    Cneves Membro Participativo

    Esse é o codigo que estou executando:

    Código:
    block-level on error undo, throw.
    
    using OpenEdge.Net.HTTP.ClientBuilder.
    using OpenEdge.Net.HTTP.Credentials.
    using OpenEdge.Net.HTTP.IHttpClient.
    using OpenEdge.Net.HTTP.IHttpRequest.
    using OpenEdge.Net.HTTP.RequestBuilder.
    using OpenEdge.Net.URI.
    using OpenEdge.Net.HTTP.IHttpResponse.
    using Progress.Json.ObjectModel.JsonObject.
    using Progress.Json.ObjectModel.JsonArray.
    USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder.
    
    
    
    /* ***************************  Main Block  *************************** */
    define variable oClient as IHttpClient no-undo.
    define variable oUri as URI no-undo.
    define variable oReq as IHttpRequest no-undo.
    define variable oResp as IHttpResponse no-undo.
    define variable oCreds as Credentials no-undo.
    define variable oJson as JsonObject no-undo.
    define variable oJsonArray as JsonArray no-undo.
    define variable oJsonObj as JsonObject no-undo.
    
    def var oJsonRespObj   as JsonObject         no-undo.       
    
    DEF VAR i AS INTEGER NO-UNDO.
    DEF VAR i2 AS INTEGER NO-UNDO.
    DEF VAR i3 AS INTEGER NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayProdutos AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonProduto AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayClientes AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonCliente AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oJsonArrayEnderecosEntrega AS JsonArray NO-UNDO.
    DEFINE VARIABLE oJsonEnderecoEntrega AS CLASS JsonObject NO-UNDO.
    
    DEFINE VARIABLE oLib           AS OpenEdge.Net.HTTP.IHttpClientLibrary NO-UNDO.
    DEFINE VARIABLE oHttpClient    AS OpenEdge.Net.HTTP.IHttpClient        NO-UNDO.
    
    oClient = ClientBuilder:Build():Client.
    
    
    oCreds = new Credentials('basic', 'datasul', 'datasul').
    oCreds = new Credentials('application', 'datasul', 'datasul').
    
    oUri = new URI('https', 'core.apipass.com.br').
    oUri:Path = '/api/2d6e173e-0b8a-4d40-9ef0-8276f195e7b/analise-entrada-datasul'.
         oReq = RequestBuilder:Get(oUri,oJson)
                :AcceptJson()
                :UsingBasicAuthentication(oCreds)
                :Request.
    
    ASSIGN oLib        = ClientLibraryBuilder:Build():sslVerifyHost(NO):library
            oClient     = ClientBuilder:Build():UsingLibrary(oLib):Client.
    
    oResp = oClient:Execute(oReq).
    
    DEF VAR c-caminho AS CHAR NO-UNDO.
    ASSIGN c-caminho = "c:\temp\".
    
    IF TYPE-OF(oResp:Entity, JsonObject) THEN DO:
        MESSAGE "jsonObject"
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
        oJsonRespObj = CAST(oResp:Entity, JsonObject).
    
        CAST(oResp:Entity, JsonObject):WriteFile(c-caminho + 'teste-objeto.json', true).
    
        oJsonArray = oJsonRespObj:getJsonArray('value') NO-ERROR.
       
        MESSAGE 'achou: ' oJsonArray <> ?
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
        IF oJsonArray = ? OR oJsonArray:LENGTH <= 0 THEN DO:
            MESSAGE "vaziooo"
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
        END.
        ELSE DO:
    
            MESSAGE "Registros: " oJsonArray:LENGTH
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
        END.
    
    
    END.

Compartilhe esta Página