cURL y HTTP POST en PHP: guía 2025 con ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

PHP, cURL y HTTP POST en 2025: de la teoría al código real



Imagine que su script PHP necesita enviar datos a otro servidor: registrar un usuario en un CRM, pagar un pedido a través de una pasarela de pago o simplemente guardar una nota en una API en la nube. ¿Cómo hacerlo sin un navegador, usando solo código puro? La respuesta es cURL. Esta biblioteca ha sido el estándar de facto para solicitudes HTTP en PHP durante muchos años, y 2025 no es la excepción.



La pregunta «¿PHP, cURL y un ejemplo de HTTP POST?» ha acumulado miles de visitas en Stack Overflow, lo que significa que incluso los desarrolladores experimentados a veces vuelven a lo básico. En este artículo, no solo veremos un ejemplo simple, sino las mejores prácticas que le ahorrarán horas de depuración. Aprenderá cómo enviar una solicitud POST, procesar correctamente la respuesta, trabajar con JSON y evitar errores comunes.



¿Qué es cURL y por qué es necesario en PHP?



cURL (Client URL) es una potente biblioteca que permite que su script PHP se comunique con otros servidores mediante los protocolos HTTP, HTTPS, FTP y otros. Si su código es un cliente, cURL es su cartero universal, que entrega solicitudes y trae respuestas.



En 2025, cuando los microservicios y las API REST se han convertido en la base del desarrollo web, saber trabajar correctamente con cURL no es solo un plus en su currículum, sino una necesidad. Sin él, es imposible integrar un sitio con servicios externos: desde enviar correos electrónicos a través de Mailgun hasta cargar archivos en un almacenamiento S3.



¿Cuándo usar HTTP POST?

Las solicitudes POST se utilizan para enviar datos al servidor que modifican su estado. Escenarios típicos:

  • Registro de usuario (envío de nombre de usuario y contraseña);
  • Creación de un recurso (añadir un nuevo producto a través de una API);
  • Envío de formulario sin recargar la página (AJAX).


Ejemplo clásico: PHP cURL y HTTP POST



Comencemos con el ejemplo más simple que responde a la pregunta «¿PHP, cURL y un ejemplo de HTTP POST?». Enviaremos una solicitud POST a un servidor de prueba y mostraremos la respuesta.



<?php// URL a la que enviamos la solicitud$url = 'https://httpbin.org/post';

// Datos a enviar (array asociativo)$data = [ 'name' => 'Iván Petrov', 'email' => 'ivan@example.com', 'message' => '¡Hola, mundo!'];

// Inicializar sesión cURL$ch = curl_init($url);

// Configurar opcionescurl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Devolver resultado como cadenacurl_setopt($ch, CURLOPT_POST, true); // Usar método POSTcurl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Enviar datos

// Ejecutar solicitud$response = curl_exec($ch);

// Verificar erroresif (curl_errno($ch)) { echo 'Error de cURL: ' . curl_error($ch);} else { // Decodificar respuesta JSON para mayor claridad $decoded = json_decode($response, true); echo '<pre>' . print_r($decoded, true) . '</pre>';}

// Cerrar sesióncurl_close($ch);?>


Análisis de los puntos clave:

  • curl_init() — crea una nueva sesión cURL.
  • CURLOPT_POST — indica explícitamente que es una solicitud POST.
  • CURLOPT_POSTFIELDS — acepta un array o una cadena con los datos.
  • curl_exec() — ejecuta la solicitud y devuelve la respuesta.
  • curl_errno() y curl_error() — sus mejores amigos para la depuración.


Este ejemplo básico es un excelente punto de partida. Pero en proyectos reales, a menudo se necesita más control.



Mejores prácticas 2025: profundizando



Usar cURL de manera superficial es el camino hacia errores y vulnerabilidades. Esto es lo que debe tener en cuenta para que su código sea confiable y moderno.



1. Trabajo con JSON y encabezados

Muchas API modernas (por ejemplo, Telegram Bot API o Stripe) aceptan datos en formato JSON. Para enviar J

Blogs

Book Recommendations