Ir para conteúdo
  • Cadastre-se

dev botao

Erro Get com Delphi 7


  • Este tópico foi criado há 1123 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Prezados, bom dia.

Utilizo Delphi 7 e estou com um problema para conseguir o Get de uma website. Lá eles utilizam o Bearer Token e da forma que estou fazendo, ao chamar o Get, ele dá o erro HTTP/1.1 401 Unauthorized.

O que posso fazer para conseguir chamar o get pelo delphi 7?

Abaixo o código que implementei:

function TForm1.GetDocumentos(URL, Sistema, TipoDocumento,
  TomadorPrestador, Status, Token: string): string;
var
  sResponse, parametros : string;
begin
    try
      with IdHTTP1.Request do
      begin
        Clear;
        CustomHeaders.Clear;
        ContentType := 'application/json';
        Accept      := 'application/json';
        BasicAuthentication := false;
        CustomHeaders.FoldLines := False;
        CustomHeaders.Add('Authorization: Bearer token:"'+Token+'"');
        CustomHeaders.Add('consultaExterna.sistema:'+Sistema);
        CustomHeaders.Add('consultaExterna.tipoDocumento:'+TipoDocumento);
        CustomHeaders.Add('consultaExterna.tomadorPrestador:'+TomadorPrestador);
        CustomHeaders.Add('consultaExterna.status:'+Status);
      end;

      sResponse := idHTTP1.Get(URL);
      Result    := sresponse;
    except
      on E: Exception do
      begin
        Result := e.message;
        exit;
      end;
    end;
end;

 

Link para o comentário
Compartilhar em outros sites

Juliomar, bom dia.

Realizei a alteração pra  "CustomHeaders.Add('Authorization:Bearer '+Token);" e o erro persiste.

Sei que está funcionando, pois eu consigo o token, que é chamado em um post. O Problema está neste tipo de autenticação que não consigo passar o bearer utilizando os componentes TIdHTTP e TIdSSLOHandlerSocket.

O post que funciona e eu chamo antes da chamada acima é este: 

function TForm1.GetToken(url, username, password: string): string;
var
  sresponse, parametros : string;
  StringStream          : TStringStream;
  json_root             : ISuperObject;
begin
    try
      with IdHTTP1.Request do
      begin
        Clear;
        ContentType := 'application/x-www-form-urlencoded';
        BasicAuthentication := True;
      end;
      parametros :=
                  'grant_type=' + 'password' + '&'
                 +'username='   +  username  + '&'
                 +'password='   +  password;

      StringStream := TStringStream.Create(UTF8Encode(parametros));
      StringStream.Position := 0;

      sResponse := idHTTP1.Post(url,StringStream);

      json_root:=SO(sresponse);
      Result := json_root.S['access_token'];
    except
      on E: Exception do
      begin
        //Result := e.message;
        exit;
      end;
    end;
end;

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1123 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...