Como fazer um pedido GET com curl_init?

A função curl_init() do PHP pode ser usada para iniciar a comunicação com um servidor web e recuperar dados via o método GET. Ao especificar a URL desejada, os desenvolvedores podem facilitar tarefas como aquisição de dados e interação com APIs!

Miguel Oliveira

Miguel Oliveira

21 maio 2025

Como fazer um pedido GET com curl_init?

cURL, abreviação de "Cliente para URLs," é uma potência de software que capacita desenvolvedores com um conjunto versátil de ferramentas para transferir dados. Oferece duas funcionalidades: uma ferramenta de linha de comando amigável e uma poderosa biblioteca que pode ser integrada a programas.

💡
Apidog é uma sofisticada plataforma de desenvolvimento de API que fornece aos desenvolvedores uma infinidade de funcionalidades para todo o ciclo de vida da API.

Se você precisa editar ou testar seus comandos PHP cURL, confira o site da Apidog clicando no botão abaixo.
button

Definição Formal de curl_init()

Com base no site oficial do PHP, a função curl_init inicializa uma sessão cURL e retorna um identificador cURL para uso com as funções curl_setopt(), curl_exec() e curl_close().

Parâmetros Envolvidos

url

Se você fornecer uma URL, a opção CURLOPT_URL será definida como seu valor. Você também pode definir essa opção manualmente usando a função curl_setopt().

No entanto, observe que o protocolo file está desativado pelo próprio cURL se o open_basedir estiver definido.

Valores de Retorno

A função curl_init() retorna um identificador cURL em caso de sucesso, e false em caso de erro.

O que é uma Requisição GET?

No contexto do Protocolo de Transferência de Hipertexto (HTTP), uma requisição GET é um método específico usado para recuperar dados de um recurso designado em um servidor. É classificada como um método seguro, o que significa que não altera o estado do recurso em si. Aqui está uma descrição da definição formal:

Função

A requisição GET é uma representação do recurso especificado.

Resultado Esperado

Uma requisição GET bem-sucedida deve retornar uma resposta contendo os dados solicitados, tipicamente na forma de HTML, texto ou outros formatos de dados.

Modificação de Dados

As requisições GET destinam-se a recuperar informações existentes e não devem ser usadas para modificar dados no servidor.

Cache

As respostas às requisições GET geralmente podem ser armazenadas em cache pelo cliente (navegador da web) e servidores intermediários, o que pode melhorar o desempenho para solicitações subsequentes ao mesmo recurso.

Pontos-Chave da Requisição GET

Exemplos de Código de curl_init() Requisições GET

Para ter uma vantagem na compreensão de como fazer requisições GET com a função curl_init(), continue lendo esta seção!

Requisição GET Básica

<?php

$url = "https://www.example.com";

// Inicializa o curl
$ch = curl_init($url);

// Define a opção para retornar a transferência como uma string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Executa a requisição
$response = curl_exec($ch);

// Verifica se há erros
if(curl_errno($ch)) {
  echo 'Erro:' . curl_error($ch);
} else {
  // Processa a resposta (por exemplo, echo, decodifica JSON)
  echo $response;
}

// Fecha a sessão curl
curl_close($ch);

?>

Requisição GET com Opção Adicional

<?php

$url = "https://www.example.com";

// Inicializa o curl
$ch = curl_init($url);

// Define o agente do usuário
curl_setopt($ch, CURLOPT_USERAGENT, "Meu Script PHP");

// Define a opção para seguir redirecionamentos
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

// Define a opção para retornar a transferência como uma string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Executa a requisição
$response = curl_exec($ch);

// Verifica se há erros
if(curl_errno($ch)) {
  echo 'Erro:' . curl_error($ch);
} else {
  // Processa a resposta
  echo $response;
}

// Fecha a sessão curl
curl_close($ch);

?>

Exemplo de Requisição GET Complexa

Esta é uma requisição GET ligeiramente complicada que envolve uma API que permite filtrar produtos com base na faixa de preço da categoria e opções de ordenação.

<?php

$url = "https://api.example.com/products";

// Define os parâmetros do filtro
$filters = array(
  "category" => "eletrônicos",
  "price_min" => 100,
  "price_max" => 500,
  "sort" => "price_asc"
);

// Constroi a string da consulta com os parâmetros codificados
$queryString = http_build_query($filters);
$url .= "?" . $queryString;

// Inicializa o curl
$ch = curl_init($url);

// Define a opção para retornar a transferência como uma string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Define cabeçalhos para indicar que dados JSON são esperados (opcional)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json'
));

// Executa a requisição
$response = curl_exec($ch);

// Verifica se há erros
if(curl_errno($ch)) {
  echo 'Erro:' . curl_error($ch);
} else {
  // Decodifica a resposta JSON (supondo que a resposta seja JSON)
  $data = json_decode($response, true);
  
  // Processa os dados (por exemplo, itera pelos produtos)
  if (isset($data['products'])) {
    foreach ($data['products'] as $product) {
      echo "Nome do Produto: " . $product['name'] . ", Preço: $" . $product['price'] . PHP_EOL;
    }
  }
}

// Fecha a sessão curl
curl_close($ch);

?>

Explicação do Código:

  1. Definimos uma URL de ponto final da API e parâmetros de filtro (categoria, faixa de preço e ordenação).
  2. Usamos http_build_query para criar uma string de consulta com valores de parâmetro codificados e anexá-la à URL.
  3. curl_setopt define opções para a requisição, incluindo a captura da resposta e potencialmente configurando cabeçalhos se a API espera um formato de dados específico (como JSON).
  4. Após a verificação de erros, a resposta é decodificada como JSON (supondo que a API retorne dados JSON).
  5. Iteramos pelos dados decodificados (array de produtos) e exibimos os detalhes do produto.

Nota Importante

Observe que estes são apenas exemplos de código que foram simplificados para explicar como é possível fazer requisições GET usando a função curl_init(), portanto, verifique se as modificações necessárias são feitas em seu respectivo IDE!

Para a documentação oficial, você pode verificar em: https://www.php.net/manual/en/book.curl.php

Apidog - Trabalhe Com Arquivos cURL Sem Esforço

Apidog é uma sofisticada plataforma de desenvolvimento de API que fornece aos usuários todas as ferramentas necessárias para todo o ciclo de vida da API. Com funcionalidades de ferramentas populares como Postman e Insomnia, você não precisa mais baixar nenhum outro aplicativo!

especificações do apidog
button

Importe Rápido Comandos cURL para o Apidog

importar curl apidog

O Apidog suporta usuários que desejam importar comandos cURL para Apidog. Em um projeto vazio, clique no botão roxo + na parte superior esquerda da janela do Apidog e selecione Importar cURL.

exemplo de código stripe curl

Copie e cole o comando cURL na caixa exibida em sua tela.

sucesso na importação do código curl

Se bem-sucedido, você deve agora conseguir visualizar o comando cURL na forma de uma requisição de API.

button

Gere Código PHP com Apidog

Se você precisar de assistência com codificação PHP, o Apidog tem um recurso de geração de código que pode ajudá-lo com isso.

apedog gerar código de cliente

Primeiro, localize o botão </> Gerar Código em qualquer API ou requisição e selecione Gerar Código de Cliente na lista suspensa.

apidog gerar código php

Em seguida, selecione PHP e encontre a seção cURL. Agora você deve ver o código gerado para cURL. Tudo o que você precisa fazer é copiar e colar no seu IDE (Ambiente de Desenvolvimento Integrado) e continuar desenvolvendo seu aplicativo.

Conclusão

A função curl_init() no PHP permite que você recupere dados de servidores da web usando requisições GET. Este bloco de construção fundamental permite que você interaja com APIs, faça download de arquivos e colete conteúdo da web. Ao dominar curl_init(), você pode automatizar tarefas, coletar informações programaticamente e estender a funcionalidade de seus aplicativos PHP.

Lembre-se de explorar as extensas opções oferecidas pelo cURL para ajustar suas requisições, lidar com erros de forma adequada e garantir uma comunicação segura. Com sua versatilidade e poder, curl_init() desbloqueia um mundo de possibilidades para seus empreendimentos de desenvolvimento web.

Explore more

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Se você está empolgado com o último lançamento da Anthropic, Claude 3.7 Sonnet, e quer explorar suas capacidades através da API enquanto o testa com o Apidog, você está no lugar certo. 💡Antes de começarmos, deixe-me fazer uma rápida observação: baixe o Apidog gratuitamente hoje e otimize seu processo de teste de API, especialmente para explorar os poderosos recursos do Claude 3.7 Sonnet—perfeito para desenvolvedores que desejam testar modelos de IA de ponta como este!botão Vamos começar com a

25 fevereiro 2025

Como passar o x-API-key no cabeçalho?

Como passar o x-API-key no cabeçalho?

Desvende os segredos da segurança eficaz de APIs, dominando como passar x-API-key nos cabeçalhos. Este guia abrangente revelará a importância desse processo e como ferramentas como o Apidog podem facilitar seus esforços. Continue lendo para garantir que suas interações com a API permaneçam seguras!

12 agosto 2024

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

O código de erro HTTP 405 ocorre quando você tenta acessar um servidor usando uma chave de API ou token de acesso inválido ou ausente. Neste artigo, veremos mais sobre o erro 405 e como corrigi-lo.

11 agosto 2024

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs