Mateus Celestino Pro
Se você trabalha com integração entre sistemas, automações, APIs públicas ou privadas, dominar requisições HTTP com cURL em PHP é uma habilidade indispensável. O cURL é uma poderosa biblioteca que permite ao seu código PHP enviar dados, receber respostas e se comunicar com qualquer API RESTful — tudo de forma programática, segura e eficiente.
Neste artigo, você aprenderá como fazer requisições GET e POST com cURL em PHP, entenderá o funcionamento de cada etapa da requisição e receberá exemplos práticos prontos para aplicação imediata em seus projetos profissionais.
O Que é cURL no PHP?
cURL (Client URL) é uma biblioteca embutida no PHP que permite realizar requisições HTTP, HTTPS, FTP, entre outros protocolos diretamente pelo código. Usando cURL, é possível:
- Enviar requisições GET, POST, PUT, DELETE, PATCH;
- Adicionar cabeçalhos HTTP (como Authorization, Content-Type, Accept);
- Enviar payloads em formatos como JSON, XML, URL-encoded;
- Capturar e manipular as respostas recebidas de APIs externas;
- Monitorar status codes e mensagens de erro.
Requisição GET com cURL em PHP
O método GET é utilizado para recuperar dados de uma API, sem enviar nenhum corpo (payload). Abaixo, o exemplo completo e funcional:
<?php // 1. Inicializa a sessão cURL $curl = curl_init(); // 2. Define a URL de destino $url = 'https://example.com/api/endpoint'; // 3. Define as opções da requisição curl_setopt($curl, CURLOPT_URL, $url); // URL da requisição curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Captura a resposta como string // 4. Executa a requisição e armazena a resposta $response = curl_exec($curl); // 5. Fecha a sessão cURL curl_close($curl); // 6. Exibe a resposta no terminal ou browser echo $response; ?>
Explicação:
curl_init()
abre uma nova sessão cURL.
CURLOPT_URL
define o destino da requisição.
CURLOPT_RETURNTRANSFER
evita que a resposta seja exibida diretamente no navegador, armazenando-a em$response
.
Requisição POST com Corpo JSON
Para enviar dados para uma API — como autenticação, cadastro ou envio de payloads — utilizamos o método POST. Veja um exemplo de envio de dados em formato JSON:
<?php // 1. Inicializa a sessão cURL $curl = curl_init(); // 2. Define a URL de destino $url = 'https://example.com/api/endpoint'; // 3. Define os dados a serem enviados $data = array( 'email' => 'exemplo@dominio.com', 'senha' => '123456' ); // 4. Converte o array em JSON $data_string = json_encode($data); // 5. Define as opções da requisição POST curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); // 6. Define os cabeçalhos HTTP curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string) )); // 7. Executa a requisição $response = curl_exec($curl); // 8. Fecha a sessão cURL curl_close($curl); // 9. Exibe a resposta echo $response; ?>
Explicação:
CURLOPT_POST
habilita o método POST.
CURLOPT_POSTFIELDS
define o corpo da requisição.
- O cabeçalho
Content-Type: application/json
é obrigatório para APIs que exigem JSON.
Content-Length
é recomendado para algumas APIs que validam o tamanho do corpo.
Aplicações Comuns
Você pode utilizar essas requisições em diversos contextos:
- Enviar leads para CRMs como HubSpot, RD Station, Ploomes;
- Integrar com APIs de automação como Make, N8N, Zapier ou Evolution API;
- Criar webhooks entre sites WordPress e APIs externas;
- Disparar mensagens automáticas no WhatsApp, SMS, e-mail ou notificações push;
- Fazer autenticação OAuth2 e envio de tokens para rotas protegidas.
Dicas Profissionais
- Sempre trate erros com
curl_error($curl)
ecurl_errno($curl)
para capturar falhas de rede ou conexão.
- Use
json_decode()
na resposta se ela estiver em JSON.
- Utilize
CURLOPT_TIMEOUT
para evitar que sua aplicação trave esperando resposta indefinida.
- Considere utilizar bibliotecas modernas como Guzzle para projetos maiores, mas o cURL nativo é leve e eficaz.
Exemplo Avançado: Autenticação com Token
<?php $curl = curl_init(); $url = 'https://api.sistema.com/v1/clientes'; $token = 'Bearer SUA_CHAVE_DE_API'; curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array( 'Authorization: ' . $token, 'Content-Type: application/json' ) )); $response = curl_exec($curl); curl_close($curl); $data = json_decode($response, true); print_r($data); ?>
Conclusão
O cURL continua sendo uma ferramenta poderosa e indispensável para desenvolvedores PHP que desejam criar integrações robustas com APIs REST. Com o domínio dessa biblioteca, você pode conectar sistemas, automatizar fluxos e criar soluções escaláveis com PHP puro — de forma segura, rápida e com total controle sobre as requisições.
Autor do artigo
Sou formado em Marketing Digital por uma das principais faculdades do Brasil, com carreira construída unindo tecnologia, automação e estratégia digital.
Apaixonado por inovação, me especializei em T.I. e automação de marketing com inteligência artificial, criando soluções que ajudam empresas a vender mais, automatizar processos e crescer com eficiência.
Atuo como empreendedor digital, desenvolvendo sistemas completos com foco em automação de vendas, atendimento inteligente via WhatsApp e integração de ferramentas modernas com IA.
Minha missão é transformar ideias em sistemas inteligentes que funcionam de forma autônoma, liberando tempo e energia para que você possa focar no que realmente importa: o crescimento do seu negócio.