1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Duvida apiRest com erro 17424

Discussão em 'Progress 4GL' iniciado por Ewerton Alves, Setembro 5, 2024.

  1. Ewerton Alves

    Ewerton Alves Sem Pontuação

    Boa tarde, Pessoal, poderiam me ajudar.

    Preciso criar uma apiRest para recebimento de um token. Via postman eu acesso ela https://empresa/token. Mas tive que configurar meu certificado no postman para conseguir o acesso, pois a empresa configurou este certificado.

    Nao tenho muito contato com ApiRest, tentei criar uma, mas o gerando um erro 'Falha no secure socket layer (ssl): codigo do erro 17424: ssl routines(9318).

    vi alguns exemplos e ficou assim minha api.

    BLOCK-LEVEL ON ERROR UNDO, THROW.

    USING OpenEdge.Net.HTTP.IHttpRequest.
    USING OpenEdge.Net.HTTP.RequestBuilder.
    USING OpenEdge.Net.HTTP.IHttpClient.
    USING OpenEdge.Net.HTTP.IHttpClientLibrary.
    USING OpenEdge.Net.HTTP.ClientBuilder.
    USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder.
    USING OpenEdge.Net.HTTP.IHttpResponse.

    /* *************************** Bloco Principal *************************** */
    DEFINE VARIABLE oLib AS IHttpClientLibrary NO-UNDO.
    DEFINE VARIABLE oClient AS IHttpClient NO-UNDO.
    DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
    DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
    DEFINE VARIABLE cSSLProtocols AS CHARACTER EXTENT NO-UNDO.
    DEFINE VARIABLE cSSLCiphers AS CHARACTER EXTENT NO-UNDO.
    DEFINE VARIABLE cCertFile AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cPassword AS CHARACTER NO-UNDO.


    ASSIGN cCertFile = "certificado.pfx"
    cPassword = "senhaCertificado".

    /* Definir os protocolos e cifras SSL/TLS */
    EXTENT(cSSLProtocols) = 2.
    EXTENT(cSSLCiphers) = 10.

    ASSIGN cSSLProtocols[1] = 'TLSv1.2'
    cSSLProtocols[2] = 'TLSv1.1'
    cSSLCiphers[1] = 'AES128-SHA256'
    cSSLCiphers[2] = 'DHE-RSA-AES128-SHA256'
    cSSLCiphers[3] = 'AES128-GCM-SHA256'
    cSSLCiphers[4] = 'DHE-RSA-AES128-GCM-SHA256'
    cSSLCiphers[5] = 'ADH-AES128-SHA256'
    cSSLCiphers[6] = 'ADH-AES128-GCM-SHA256'
    cSSLCiphers[7] = 'ADH-AES256-SHA256'
    cSSLCiphers[8] = 'AES256-SHA256'
    cSSLCiphers[9] = 'DHE-RSA-AES256-SHA256'
    cSSLCiphers[10] = 'AES128-SHA'
    .


    oLib = ClientLibraryBuilder:Build()
    :SetSSLProtocols(cSSLProtocols)
    :SetSSLCiphers(cSSLCiphers)
    :Library.


    oClient = ClientBuilder:Build()
    :UsingLibrary(oLib)
    :Client.


    oRequest = RequestBuilder
    :GET("https://empresa/token")
    :AddHeader(cCertFile,cPassword)
    :Request.

    oResponse = oClient:Execute(oRequest).

    /* Exibir a resposta */
    IF oResponse:StatusCode = 200 THEN DO:
    MESSAGE "Requisição bem-sucedida. Resposta: "
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    END.
    ELSE DO:
    MESSAGE "Erro na requisição: "
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    END.


    Para conexão, peguei os certificados do site e importei, mas nao adiantou.

    Se conseguirem me auxiliar, agradeço. Estou fazendo no progress 12.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Exporta o Postman e posta aqui
  3. Ewerton Alves

    Ewerton Alves Sem Pontuação

    Segue.

    Arquivos Anexados:

Compartilhe esta Página