Fala galera de Delphi, tudo beleza?
Neste post, vamos aprender como fazer uma requisição HTTP para obter um arquivo JSON a partir de uma URL em Delphi. Utilizaremos a biblioteca TNetHTTPClient
, que é fácil de usar e está disponível nas versões mais recentes do Delphi.
TNetHTTPClient
ao seu formulário.TButton
) e um memo (TMemo
) ao formulário para iniciar a requisição e exibir os dados recebidos.
Primeiro, precisamos importar os módulos necessários. Abra o formulário principal e adicione as seguintes unidades à seção uses
:
uses System.SysUtils, System.Classes, System.JSON, System.Net.HttpClient, System.Net.URLClient, System.Net.HttpClientComponent;
No formulário principal, adicione os seguintes componentes:
TNetHTTPClient
: Nomeie como NetHTTPClient1
.TButton
: Nomeie como Button1
e defina o evento OnClick
para iniciar a requisição.TMemo
: Nomeie como Memo1
para exibir o JSON recebido.
Aqui está o código completo que você deve adicionar ao evento OnClick
do botão:
procedure TForm1.Button1Click(Sender: TObject); var LResponse: IHTTPResponse; LJSONObject: TJSONObject; LStreamReader: TStreamReader; begin try // Faz a requisição GET para obter o JSON LResponse := NetHTTPClient1.Get('https://api.example.com/list'); // Verifica se a requisição foi bem-sucedida if LResponse.StatusCode = 200 then begin // Lê a resposta JSON LStreamReader := TStreamReader.Create(LResponse.ContentStream, TEncoding.UTF8); try // Carrega o conteúdo JSON em um objeto TJSONObject LJSONObject := TJSONObject.ParseJSONValue(LStreamReader.ReadToEnd) as TJSONObject; try // Agora você pode acessar os dados do JSON // Exemplo: Mostrar o JSON em um memo Memo1.Lines.Text := LJSONObject.ToString; finally LJSONObject.Free; end; finally LStreamReader.Free; end; end else begin ShowMessage('Erro ao obter JSON: ' + LResponse.StatusCode.ToString); end; except on E: Exception do ShowMessage('Exceção ao obter JSON: ' + E.Message); end; end;
NetHTTPClient1.Get
para fazer uma requisição GET para a URL especificada.LResponse
contém a resposta da requisição.LResponse.StatusCode
é verificado para garantir que a requisição foi bem-sucedida (código 200).TStreamReader
é usado para ler a resposta do fluxo de conteúdo (LResponse.ContentStream
).TJSONObject.ParseJSONValue
converte a string JSON em um objeto TJSONObject
.TMemo
(Memo1.Lines.Text := LJSONObject.ToString
).try...except
é usado para capturar e exibir qualquer exceção que ocorra durante o processo de requisição e leitura do JSON.
Após adicionar o código acima, compile e execute o projeto. Clique no botão para iniciar a requisição e, se tudo estiver correto, o JSON recebido será exibido no TMemo
.
Além do método GET, que usamos para obter dados, há outros métodos HTTP importantes que são frequentemente utilizados para manipular dados em uma API. Vamos dar uma breve olhada nos métodos POST, PUT e DELETE.
O método POST é utilizado para enviar dados ao servidor para criar um novo recurso. Por exemplo, ao preencher um formulário de registro de usuário, os dados do formulário são enviados ao servidor usando o método POST.
var HTTPClient: TNetHTTPClient; Response: IHTTPResponse; JSONToSend: TStringStream; begin HTTPClient := TNetHTTPClient.Create(nil); try JSONToSend := TStringStream.Create('{"name":"John Doe","email":"john@example.com"}', TEncoding.UTF8); try Response := HTTPClient.Post('https://api.example.com/users', JSONToSend); // Processar a resposta finally JSONToSend.Free; end; finally HTTPClient.Free; end; end;
O método PUT é usado para atualizar um recurso existente no servidor. Diferente do POST, o PUT geralmente requer que você especifique o recurso que está sendo atualizado.
var HTTPClient: TNetHTTPClient; Response: IHTTPResponse; JSONToSend: TStringStream; begin HTTPClient := TNetHTTPClient.Create(nil); try JSONToSend := TStringStream.Create('{"name":"John Doe","email":"john.doe@example.com"}', TEncoding.UTF8); try Response := HTTPClient.Put('https://api.example.com/users/1', JSONToSend); // Atualiza o usuário com ID 1 // Processar a resposta finally JSONToSend.Free; end; finally HTTPClient.Free; end; end;
O método DELETE é utilizado para remover um recurso existente no servidor. Por exemplo, para deletar um usuário específico pelo seu ID.
var HTTPClient: TNetHTTPClient; Response: IHTTPResponse; begin HTTPClient := TNetHTTPClient.Create(nil); try Response := HTTPClient.Delete('https://api.example.com/users/1'); // Deleta o usuário com ID 1 // Processar a resposta finally HTTPClient.Free; end; end;
Neste post, exploramos como fazer uma requisição HTTP para obter um JSON em Delphi usando a biblioteca TNetHTTPClient
. Aprendemos a configurar o projeto, adicionar os componentes necessários e escrever o código para realizar a requisição, processar a resposta e exibir o conteúdo JSON em um TMemo
.
Também demos uma breve introdução aos métodos HTTP POST, PUT e DELETE, que são fundamentais para interagir com APIs RESTful de maneira completa, permitindo não apenas a leitura de dados, mas também a criação, atualização e exclusão de recursos no servidor.
TNetHTTPClient
, TButton
e TMemo
para realizar requisições HTTP e manipular dados.TJSONObject
e exibição do conteúdo.Com essas habilidades, você está bem equipado para começar a integrar Delphi com APIs RESTful, possibilitando uma vasta gama de funcionalidades em suas aplicações. No próximo post, aprofundaremos nossos conhecimentos sobre os métodos POST, PUT e DELETE, abordando exemplos práticos de como utilizá-los para enviar, atualizar e deletar dados de um servidor.
Beleza pessoal? Espero que possa ajudar.
Dúvida ou sugestões? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!
#Delphi
#Programação
#APIs
#Desenvolvimento
#GiovaniDaCruz
Fala galera de programação, tudo beleza? Quando estamos criando um programa, temos a possibilidade de recuperar os valores informados nos parâmetros da linha de comando. Normalmente existe alguma que função retorna os argumentos passados ao programa quando ele é executado, permitindo que você lide com diferentes cenários de entrada de dados. Exemplo Prático Considere o […]
Fala galera da programação, tudo beleza? A programação orientada a objetos (POO) é um paradigma de programação que organiza o software em objetos, cada um contendo dados e comportamentos. Dois conceitos fundamentais nesse paradigma são a sobrescrita (override) e a sobrecarga (overload) de métodos. Ambos desempenham papéis cruciais na construção de software flexível, reutilizável e […]
Fala galera da programação, tudo beleza? Você sabia que pode estender funcionalidades de classes existentes no Delphi sem modificar o código original? Hoje vamos descobrir como usar Class Helpers no Delphi para estender funcionalidades de classes existentes de maneira simples e eficiente! Introdução Class Helpers são um recurso poderoso e prático introduzido no Delphi, […]
Fala galera de programação, tudo beleza? No desenvolvimento de software, a eficiência e a performance do código são aspectos cruciais, especialmente em aplicações que exigem alta performance ou que operam em ambientes com recursos limitados. Uma técnica disponível para desenvolvedores Delphi é a utilização de funções inline. Neste artigo, vamos explorar o que são funções […]
Fala galera de programação, tudo beleza? No desenvolvimento de software, é comum nos depararmos com o termo “deprecated” (ou “obsoleto” em português). Mas o que isso significa exatamente? Vamos explorar esse conceito e entender sua importância no ciclo de vida do desenvolvimento de software. O Que São Métodos Deprecated? Quando uma biblioteca ou framework […]
Fala galera do Delphi, tudo beleza? Outro dia falando sobre Variáveis Inline no Delphi, o post foi bem comentado nas redes, então resolvi detalhar mais sobre o assunto e hoje vamos ver mais especificamente sobre o uso de Variáveis Inline em laços de repetição (“For Inline”) Introdução O Delphi é uma linguagem de programação […]
Fala galera da programação, tudo beleza? Descubra como copiar de forma genérica o registro atual entre TClientDataSets em Delphi! Simplifique sua manipulação de dados e desenvolvimento de aplicativos com esta solução eficiente. Introdução A manipulação eficaz de registros é crucial para o desenvolvimento de aplicativos robustos. No Delphi, a cópia precisa do registro atual […]
Fala galera da Programação, tudo beleza? Descubra como otimizar seu código Delphi com variáveis inline! 🚀 No nosso novo artigo, exploramos como essa funcionalidade pode tornar seu desenvolvimento mais eficiente e seu código mais legível. Não perca esta oportunidade de aprimorar suas habilidades! Introdução As variáveis inline são uma adição recente ao arsenal de […]
Fala galera da programação, tudo beleza? Descubra como simular o pressionamento de teclas em suas aplicações Delphi e Lazarus! Aprenda a automatizar tarefas e tornar suas interfaces mais interativas. Confira nosso novo artigo e impulsione seu desenvolvimento de software! Introdução Você sabia que é possível simular o evento de pressionar de teclas em suas […]
Fala galera da programação, tudo beleza? Descubra como impulsionar o desempenho do seu aplicativo Delphi com a poderosa TParallel.For! 💡 Aprenda sobre programação paralela, eficiência e muito mais neste novo post. Introdução A programação paralela é uma técnica crucial para melhorar o desempenho e a eficiência de aplicativos que precisam lidar com operações intensivas […]