Consumir API HTTPS do banco central

Estou tentando usar a função HTTPSGet para fazer a conexão com a API do banco central que retorna um json com o valor do dólar de compra e venda de acordo com uma data.

Mas não estou conseguindo fazer a conexão SSL e retornar o json da API.

Segue abaixo meu fonte:


user function ATPTAX()
    Local cURL := "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)"
    Local nTimeOut := 120
    Local aHeadOut := {}
    Local cHeadRet := ""
    Local cGetRet := ""


    AAdd(aHeadOut, 'User-Agent: Chrome/81.0 (compatible; Protheus ' + GetBuild() + ')')
    cGetRet := HTTPSGet( cURL, "\system\certs\000001_cert.pem", "\system\certs\000001_key.pem", "senha", '@dataCotacao=' + Escape("'04-17-2020'") + '&$top=' + Escape('1') + '&$format=' + Escape('json') + '&$select=' + "cotacaoCompra,cotacaoVenda", nTimeOut, aHeadOut, @cHeadRet)

    if Empty(cGetRet)
        conout("Fail HTTPSGet")
    else
        conout("OK HTTPSGet")
        varinfo("WebPage", cGetRet)
    endif

    varinfo("Header", cHeadRet)

return

Retorno:

console.PNG

Segue a URL que retorna o json: https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao=%2704-17-2020%27&$top=1&$format=json&$select=cotacaoCompra,cotacaoVenda

Ambiente que é montada a URL: https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/aplicacao#!/recursos/CotacaoDolarDia#eyJmb3JtdWxhcmlvIjp7IiRmb3JtYXQiOiJqc29uIiwiJHRvcCI6MTAwfSwicHJvcHJpZWRhZGVzIjpbMCwxXX0=

Obs.: Fiz um teste com a URL da sefaz e consegui conectar e ter o retorno, com o mesmo caminho do certificado.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags httpsget api ssl ou faça a sua própria pergunta.