Blog


PETICIONES POST CON CURL EN DRUPAL 7

29 / 04 / 2014 Drupal

Buenas drupaleros,

en la píldora drupaliana de hoy, os voy a contar cómo hacer una serie de peticiones Post a través de curl.

Primeramente debemos asegurarnos que tenemos instalada la extensión de curl en nuestro servidor libcurl

A continuación, debemos incluir en nuestro módulo, el código para hacer las llamadas. El lugar dónde incluirlo, lógicamente, dependerá de lo que queramos hacer. Puede que las peticiones las queramos hacer cuando se ejecute el cron, puede ser que las queramos hacer cuando se produzca una situación particular, o puede que las queramos lanzar cuando nosotros queramos.

En nuestro caso, vamos lanzar una serie de peticiones post con curl, cuando se ejecute una determinada url. El acceso a esa url, vendrá controlada por permisos.


<?php

$items['lanzar-peticiones/%'] = array(
        'title'            => 'Lanzar peticiones',
        'page callback'    => 'lanzar_peticiones', 
        'page arguments'  => array(1),    
        'access callback' => 'admin_peticiones',           
        'type'            => MENU_CALLBACK,
    );

A continuación la función a la que hacemos referencia:


<?php
function lanzar_peticiones($nid) {
    //…
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,"https://unsitio.com");
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11');
    curl_setopt($ch, CURLOPT_FAILONERROR, 1); //terminar en caso de error
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// Permitir Redirecciones
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // Resultados en una variable
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); //timeout.
    curl_setopt($ch, CURLOPT_POST, 1); // Para que sea por POST               
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(el_contenido_que_queramos)));
 
    $server_output = curl_exec ($ch);
    curl_close ($ch);
    //...
}

Con esto habremos lanzado las peticiones que queramos por Post utilizando curl.

Ejemplos en los que puede resultar interesante utilizar curl:

  • Para hacer confirmaciones/anulaciones de pagos masivos a bancos
  • Para loguearse en determinadas web
  • Simular acciones en un navegador


ARTÍCULOS RELACIONADOS