cURL es muy útil para comunicarse con muchas APIs o más en general para automatizar peticiones y enviar datos entre servidores en internet. Cuando se usa cURL los datos se pueden enviar usando varios protocolos.
El siguiente snippet hace una petición a un servidor remoto enviando datos mediante el protocolo HTTP POST:
<?php // abrimos la sesión cURL $ch = curl_init(); // definimos la URL a la que hacemos la petición curl_setopt($ch, CURLOPT_URL,"http://www.example.com/test.php"); // indicamos el tipo de petición: POST curl_setopt($ch, CURLOPT_POST, TRUE); // definimos cada uno de los parámetros curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2&postvar3=value3"); // recibimos la respuesta y la guardamos en una variable curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $remote_server_output = curl_exec ($ch); // cerramos la sesión cURL curl_close ($ch); // hacemos lo que queramos con los datos recibidos // por ejemplo, los mostramos print_r($remote_server_output); ?>
Antes de poder usar cURL hay que asegurarse que está instalado ;) Si no lo está, se instala y se reinicia el servidor web:
apt-get install php-curl service apache2 restart
11 comentarios
apt-get install php-curl
service apache2 restart
De esta forma te olvidas de la dependencia de versión de php.
Cierto Miguel! Mucho mejor usar el alias del paquete. Lo he cambiado en el artículo. Gracias.
Ahí estas integrando curl a un script, pero, ¿Como podría utilizarse para enviar un formulario por a través del protocolo SMTP?
(mi verdadera pregunta es: ¿aún se necesita definir los parametros así?)
// definimos cada uno de los parámetros
curl_setopt($ch, CURLOPT_POSTFIELDS, «postvar1=value1&postvar2=value2&postvar3=value3»);
Hola utilizo curl para sacar datos de una página y me funcionaba de maravillas ahora tengo un problema la pagina cambio y tiene una imagen de seguridad como puedo resolver esa traba
Hola, lo pudiste solucionar? Me interesa
Estoy usando curl para pasar parámetros y si tengo una cadena que necesito que pase un espacio final, éste no pasa, es como que hace un trim.
Sugerencias??
Muchas gracias
Hola Alejandro,
¿has probado a codificar para url antes de enviar? Utilizando urlencode, por ejemplo.
Hola, hice tu mismo codigo, pero no me envían las variables en la petición, a que sera?
Hola, cómo recupero los parámetros de una petición hecha con curlphp en el servidor? es decir, yo como cliente envio mi peticion curl :
curl_setopt_array($curl, array(
CURLOPT_URL => «http://consultarapi/estado.php?orden=$delivery_id»,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => «»,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => «GET»,
CURLOPT_HTTPHEADER => array(
«Accept: application/json»,
«api-key: «.$API_KEY,
«Content-Type: application/json»
),
));
cómo «rescato» el $API_KEY en el servidor donde tengo consultarapi/estado.php?
Pero que mierda de sitio web tienes no se puede seleccionar el puto codigo
hola como estas? gracias por el aporte.
tengo un link que lo que hace es encender un dispositivo:
curl -X POST https://maker.ifttt.com/trigger/xxxxx/with/key/en41_JAADdgyxcWFfOXTYqxn3eheujKBu8VgaSBVmpQ
(es un ejemplo claro)
No estoy entendiendo como hacer para agregar esa funciona a un boton en una web realizada en wordpress.. te agradeceria algun comentario, gracias por la ayuda