Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo hacer una petición POST a un servidor usando cURL en un script PHP

Imago voragine.net
[actualizado el ]Enlace permanente

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:

Antes de poder usar cURL hay que asegurarse que está instalado ;) Si no lo está, se instala y se reinicia el servidor web:

9 comentarios

    • Por Miguel •

    apt-get install php-curl
    service apache2 restart

    De esta forma te olvidas de la dependencia de versión de php.

    1. Cierto Miguel! Mucho mejor usar el alias del paquete. Lo he cambiado en el artículo. Gracias.

    • Por Gezmat •

    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»);

    • Por angel reinoso •

    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

      • Por Ruben •

      Hola, lo pudiste solucionar? Me interesa

    • Por ALEJANDRO •

    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

    1. Hola Alejandro,

      ¿has probado a codificar para url antes de enviar? Utilizando urlencode, por ejemplo.

    • Por Hugo •

    Hola, hice tu mismo codigo, pero no me envían las variables en la petición, a que sera?

    • Por Virginia •

    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?

Responder al comentario de Miguel

*
*

 

No hay trackbacks