Contenido

Peticiones HTTP con WordPress

17 ago

+ 3

En PlanetOzh hacen un interesante tutorial de como lanzar peticiones HTTP mediante la API de WordPress. Desde la versión 2.7, disponemos de un interfaz muy sencillo para lanzar peticiones HTTP a servicios externos.

Peticiones HTTP

El fichero http.php que podemos encontrar en wp-includes/ nos permite hacer llamadas tan sencillas como estas:

$request = new WP_Http;
$result = $request->request( 'http://some.url.you-need.to-fetch' );

Como podemos ver, hacer las llamadas es realmente sencillo. Pero aquí no se queda la cosa:

Peticiones GET

Tambien podemos lanzar peticiones GET informando los parámetros como parte de la URL.

$url = 'http://search.twitter.com/search.json?q=rabbits';
$request = new WP_Http;
$result = $request->request( $url );
$json = $result['body'];

Peticiones POST

Si por lo contrario queremos enviar parámetros por POST, simplemente tendremos que cambiar la forma de enviarlos:

$body = array(
 'nick' => 'ozh',
 'mood' => 'happy'
);
$url = 'http://your.api.url/';
$request = new WP_Http;
$result = $request->request( $url, array( 'method' => 'POST', 'body' => $body) );

Respuesta

Una vez lanzada la petición, obtendremos una serie de parámetros con información sobre la respuesta del servidor externo.

  • headers': Un array con las cabeceras de la respuesta
  • 'body': La respuesta del servidor.
  • 'response': Un array con los códigos  HTTP  de respuesta generalmente array('code'=>200, 'message'=>'OK')
  • 'cookies': Un array con información de la cookie.

Ejemplo práctico

// Datos de Twitter
$username = 'joe'; // Twitter login
$password = '123456'; // Twitter password
$message = "Publicando desde la API";
// Lanzamos la petición HTTP
$api_url = 'http://twitter.com/statuses/update.xml';
$body = array( 'status' => $message );
$headers = array( 'Authorization' => 'Basic '.base64_encode("$username:$password") );
$request = new WP_Http;
$result = $request->request( $api_url , array( 'method' => 'POST', 'body' => $body, 'headers' => $headers ) );

Estas pocas líneas, nos permiten enviar a Twitter un actualización directamente desde nuestro WordPress, simplemente tendremos que informar los datos del usuario y lanzar la petición a la URL que obtenemos en la API de Twitter.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.