¿Cómo hacer una solicitud GET con curl_init?

`curl_init()` de PHP inicia comunicación con un servidor web y recupera datos vía GET. ¡Especificando la URL, facilita la adquisición de datos e interacción con APIs!

Daniel Costa

Daniel Costa

30 June 2025

¿Cómo hacer una solicitud GET con curl_init?

cURL, abreviatura de "Client for URLs", es un potente software que permite a los desarrolladores contar con un conjunto de herramientas versátil para la transferencia de datos. Ofrece dos funcionalidades: una herramienta de línea de comandos fácil de usar y una potente biblioteca que se puede integrar en los programas.

💡
Apidog es una plataforma de desarrollo de API sofisticada que equipa a los desarrolladores con una plétora de funcionalidades para todo el ciclo de vida de la API.

Si necesita editar o probar sus comandos PHP cURL, consulte el sitio web de Apidog haciendo clic en el botón de abajo.
button

Definición formal de curl_init()

Según el sitio web oficial de PHP, la función curl_init inicializa una sesión cURL y devuelve un controlador cURL para su uso con las funciones curl_setopt(), curl_exec() y curl_close().

Parámetros involucrados

url

Si proporciona una URL, la opción CURLOPT_URL se establecerá en su valor. También puede establecer manualmente esta opción utilizando la función curl_setopt().

Sin embargo, tenga en cuenta que el protocolo file está desactivado por el propio cURL si se ha establecido open_basedir.

Valores de retorno

La función curl_init() devuelve un controlador cURL si tiene éxito y false si hay errores.

¿Qué es una solicitud GET?

En el contexto del Protocolo de transferencia de hipertexto (HTTP), una solicitud GET es un método específico que se utiliza para recuperar datos de un recurso designado en un servidor. Se clasifica como un método seguro, lo que significa que no altera el estado del recurso en sí. Aquí hay un desglose de la definición formal:

Función

Las solicitudes GET son una representación del recurso especificado.

Resultado esperado

Una solicitud GET exitosa debe devolver una respuesta que contenga los datos solicitados, normalmente en forma de HTML, texto u otros formatos de datos.

Modificación de datos

Las solicitudes GET están destinadas a recuperar información existente y no deben utilizarse para modificar datos en el servidor.

Almacenamiento en caché

Las respuestas a las solicitudes GET a menudo pueden ser almacenadas en caché por el cliente (navegador web) y los servidores intermediarios, lo que puede mejorar el rendimiento para las solicitudes posteriores del mismo recurso.

Puntos clave de la solicitud GET

Ejemplos de código de solicitudes GET curl_init()

Para tener una ventaja inicial en la comprensión de cómo realizar solicitudes GET con la función curl_init() involucrada, ¡continúe leyendo esta sección!

Solicitud GET básica

<?php

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

// Initialize curl
$ch = curl_init($url);

// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Execute the request
$response = curl_exec($ch);

// Check for errors
if(curl_errno($ch)) {
  echo 'Error:' . curl_error($ch);
} else {
  // Process the response (e.g., echo, decode JSON)
  echo $response;
}

// Close the curl session
curl_close($ch);

?>

Solicitud GET con opción adicional

<?php

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

// Initialize curl
$ch = curl_init($url);

// Set user agent
curl_setopt($ch, CURLOPT_USERAGENT, "My PHP Script");

// Set option to follow redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Execute the request
$response = curl_exec($ch);

// Check for errors
if(curl_errno($ch)) {
  echo 'Error:' . curl_error($ch);
} else {
  // Process the response
  echo $response;
}

// Close the curl session
curl_close($ch);

?>

Ejemplo de solicitud GET compleja

Esta es una solicitud GET ligeramente complicada que involucra una API que permite filtrar productos según el rango de precios de la categoría y las opciones de clasificación.

<?php

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

// Define filter parameters
$filters = array(
  "category" => "electronics",
  "price_min" => 100,
  "price_max" => 500,
  "sort" => "price_asc"
);

// Build query string with encoded parameters
$queryString = http_build_query($filters);
$url .= "?" . $queryString;

// Initialize curl
$ch = curl_init($url);

// Set option to return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers to indicate JSON data is expected (optional)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json'
));

// Execute the request
$response = curl_exec($ch);

// Check for errors
if(curl_errno($ch)) {
  echo 'Error:' . curl_error($ch);
} else {
  // Decode the JSON response (assuming response is JSON)
  $data = json_decode($response, true);
  
  // Process the data (e.g., loop through products)
  if (isset($data['products'])) {
    foreach ($data['products'] as $product) {
      echo "Product Name: " . $product['name'] . ", Price: $" . $product['price'] . PHP_EOL;
    }
  }
}

// Close the curl session
curl_close($ch);

?>

Explicación del código:

  1. Definimos una URL de punto final de API y parámetros de filtro (categoría, rango de precios y orden).
  2. Usamos http_build_query para crear una cadena de consulta con valores de parámetros codificados y la agregamos a la URL.
  3. curl_setopt establece opciones para la solicitud, incluida la captura de la respuesta y, potencialmente, el establecimiento de encabezados si la API espera un formato de datos específico (como JSON).
  4. Después de la verificación de errores, la respuesta se decodifica como JSON (asumiendo que la API devuelve datos JSON).
  5. Iteramos a través de los datos decodificados (matriz de productos) y mostramos los detalles del producto.

Nota de lectura obligada

Tenga en cuenta que estos son solo ejemplos de código que se simplifican para explicar cómo es posible realizar solicitudes GET utilizando la función curl_init(), así que asegúrese de que se realicen las modificaciones necesarias en su IDE respectivo.

Para obtener la documentación oficial, puede consultarla en: https://www.php.net/manual/en/book.curl.php

Apidog: trabaje con archivos cURL sin esfuerzo

Apidog es una plataforma de desarrollo de API sofisticada que proporciona a los usuarios todas las herramientas necesarias para todo el ciclo de vida de la API. Con funcionalidades de herramientas populares como Postman e Insomnia, ¡ya no tiene que descargar ninguna otra aplicación!

especificaciones de apidog
button

Importe rápidamente comandos cURL en Apidog

apidog import curl

Apidog es compatible con los usuarios que deseen importar comandos cURL a Apidog. En un proyecto vacío, haga clic en el botón púrpura + en la parte superior izquierda de la ventana de Apidog y seleccione Import cURL.

ejemplo de código curl de stripe

Copie y pegue el comando cURL en el cuadro que se muestra en su pantalla.

importación de código curl exitosa

Si tiene éxito, ahora debería poder ver el comando cURL en forma de una solicitud de API.

button

Genere código PHP con Apidog

Si necesita ayuda con la codificación PHP, Apidog tiene una función de generación de código que puede ayudarle con eso.

apidog generate client code

Primero, localice el botón </> Generate Code en cualquier API o solicitud, y seleccione Generate Client Code en la lista desplegable.

apidog generate php code

A continuación, seleccione PHP y busque la sección cURL. Ahora debería ver el código generado para cURL. Todo lo que tiene que hacer es copiarlo y pegarlo en su IDE (Entorno de desarrollo integrado) y continuar desarrollando su aplicación.

Conclusión

la función curl_init() en PHP le permite recuperar datos de servidores web mediante solicitudes GET. Este bloque de construcción fundamental le permite interactuar con las API, descargar archivos y extraer contenido web. Al dominar curl_init(), puede automatizar tareas, recopilar información mediante programación y ampliar la funcionalidad de sus aplicaciones PHP.

Recuerde explorar las amplias opciones que ofrece cURL para ajustar sus solicitudes, manejar los errores con elegancia y garantizar una comunicación segura. Con su versatilidad y potencia, curl_init() abre un mundo de posibilidades para sus esfuerzos de desarrollo web.

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs