Acertar parametros no componente rest

Boa tarde senhores, em especial @arimateia

essa é a sugestao da documentacao, o exemplo inicial pra acesso:

GET https://api.nuvemfiscal.com.br/cep/04094000 HTTP/1.1
Host: api.nuvemfiscal.com.br
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiOiIw…
Accept: /

ja tenho o token real em maos, gerado certinho .

configurei os componentes conforme a instrucao abaixo.
Uma vez de posse do token de acesso, você pode fazer requisições autenticadas à API da Nuvem Fiscal. Para isso basta criar a sua requisição HTTP à API normalmente, e adicionar o header Authorization , com valor Bearer seguido do token (atenção ao espaço entre o texto Bearer e o token).

configurei meus componentes direto no delphi da seguinte forma…
RESTClient1.BaseURL := ‘https://api.nuvemfiscal.com.br/cep’;
// Configurei o RESTRequest
RESTRequest1.Resource := ‘04094000’; // Parte do URL final
RESTRequest1.Method := rmGET;

// Adicionei o cabeçalho de autorização
RESTRequest1.Params.Clear;
RESTRequest1.Params.AddHeader(‘Authorization’, ‘Bearer eyJ0eXAiOiJKV1QiLCJraWQiOiIwMWIwNDFkMWQ2MTU0NjA0NzNkMWI1NGFhOGRlNGQ1NyIsImFsZyI6IlJTMjU2In0…’); // coloquei o token certo, claro.
RESTRequest1.Execute;

ai recebo o retorno ‘unauthorized’.

Meu caro… preferi fazer no delphi raiz, ainda apanho da P.O.O. e nao vou ter tempo pra aprender.

mas… o que me faltou aqui? tem parametro que preciso passar pro componente?

obrigado.

Bom dia, @linovenancio.

Qual a mensagem retornada no corpo da resposta HTTP, sabe dizer?

boa tarde,

retorna pra mim ‘unauthorized’.

e eu uso o exemplo do sdk pra gerar o token.

@linovenancio

Pelo que vi, sua configuração parece estar correta. Como você mencionou que está recebendo o retorno “unauthorized”, seria interessante realizar um teste simples usando esse mesmo token em uma requisição via Postman ou cURL, para verificar se o problema está na autenticação ou na configuração dos componentes no Delphi.

Exemplo usando cURL:

curl -X GET "https://api.nuvemfiscal.com.br/cep/04094000" \
-H "Authorization: Bearer eyJ0eXAioiJKV1QiLCJraWQiOiIw..."

Ou no Postman, basta configurar uma requisição GET para a URL acima e adicionar o token no cabeçalho Authorization.

Se a requisição funcionar em uma dessas ferramentas, isso pode indicar que o problema está na implementação da requisição no Delphi. Caso contrário, poderemos investigar se o token possui algum problema.

Fico no aguardo do resultado!

Postman… funcionou certinho.


Mas se vc pensar em copiar os parametros pro ambiente delphi… nao funciona.

Nem no rest debugger


pra vc ter uma ideia, cliquei no recurso ‘copy components’ e ele me gerou os componentes preenchidos, nem assim funciona.

pelo visto é problema de autorizacao.Deve ser algum detalhe.

E eu to com urgencia de implementar MDF-e, meu medo é que nqao funciona um Get de exemplo, nao sei se os posts funcionarao.

Vou testar com outro endpoint, e tentar rodar um desses endpoints no flutterflow.

Quem sabe aparece alguma idéia do que possa ser.

Obs. Estou usando o Delphi 11 CE.

Tenho o D7 aqui , é o original que comprei, mas nem mexo com ele nas questoes de API.

Bom dia, tudo bem?
A Api funcionou no Delphi. Até agora configurei as ‘GETS’ .
o que eu fiz:

Como funcionou no postman e nao funcionou no RestDebugger, eu perguntei pro chatgpt.

Ele tb mandou eu testar no postman, me deu uma sugestoes de onde procurar o erro.
No RestDebugger vc gera um json com os parametros, eu mandei esse json pra ele e ele sugeriu corrigir a propriedade ‘encode’. Aí deu certo.

vou te mandar o que ele me disse.

Aparentemente, o problema está no modo como o Delphi REST Debugger lida com o cabeçalho Authorization, ou na configuração do Bearer Token. Embora o Postman funcione corretamente, alguns detalhes na ferramenta do Delphi podem estar configurados de forma incorreta.

Aqui estão algumas coisas que você pode tentar:

  1. Autenticação no REST Debugger:
    Na configuração que você forneceu, o campo auth.method está como “NONE”, o que significa que o REST Debugger não está tratando o token como uma autenticação padrão. Porém, você está configurando o token manualmente no cabeçalho. Então, é importante manter a autenticação desabilitada (como está), mas garantir que o token seja passado corretamente.

  2. Configuração do Cabeçalho “Authorization”:
    Certifique-se de que o token está sendo configurado adequadamente como “Bearer ” no cabeçalho.

Parece que você já está enviando o token corretamente no cabeçalho como “kind”:“HEADER”. Entretanto, o problema pode estar relacionado com o campo “encode”:true. Nesse caso, não há necessidade de codificar o token, já que ele já está no formato adequado.

o problema pode estar relacionado com o campo “encode”:true.
aqui estava o problema. por isso retornava unauthorized.


Pois é… vou seguir em frente, já montei os componentes com GET e POST. espero hj conseguir gerar o mdf-e.

obrigado pelo suporte, bom domingo.

Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.