Artículo
|
Cómo hacer solicitudes HTTP con WordPress |
Hacer peticiones HTTP en PHP no es difícil, y existe una variedadde métodos: el uso de fopen(), utilizando la extensión CURL, utilizando secuencias de archivo con fsockopen () y fwrite(), por ejemplo. El problema es: dependiendo de la configuración del servidor, esto podría o no podría funcionar en otro servidor. Labuena noticia es: una vez más, WordPress tiene una API que hace fácil y compatible con todas las configuraciones este proceso.
Introducción a la clase WP_Http
Desde la versión 2.7 de WordPress, se puede hacer uso de esta clase, pero a partir de la versión 3, para poder hacer uso de ella, hay que incluirla explicitamente en nuestro código.
El poder de esta clase, reside en que dependiendo de como está configurado el servidor y de los método que tenga implementado, utilizará la mejor de esas opciones para hacer las llamadas HTTP. Con esta clase, no hace falta comprobar si está activo fopen() o curl_init(), ya que ella se encarga de hacer todo esto.
El código básico que debemos de utilizar es:
La variable $result, será un array que contiene los siguientes elementos:
Headers: Un array con las cabeceras de la respuestas, por ejemplo “x-powered-by => PHP/5.2.1”
Body: La cadena de respuesta enviada por el servidor, como tú deberías verla en tu navegador.
Response: Un array de códigos de respuesta HTTP
cookies: un array de información de cookies
Veamos ahora un ejemplo más complejo. Supongamos que queremos recoger las últimas búsquedas en twitter sobre conejos.
Con esto conseguiremos recuperar una cadena JSON con los resultados de la búsqueda.
Ahora nos meteremos en un caso un poco más avanzado. Si necesitamos meter algunos parámetros por POST, lo podemos hacer de la siguiente forma.
Digamos que usted desea actualizar su cuenta de Twitter. Su método de actualización de estado es una simple solicitud, pero que además necesita de autenticación (es decir,http://twitter.com/statuses/update.xml pide su nombre de usuario y contraseña de Twitter)
Autenticación en las peticiones HTTP se logra mediante el envío de una cadena codificada en base64 del nombre de usuario, dos puntos y la contraseña (es decir, "usuario: contraseña")
Nuestro ejemplo Twitter sería algo sencillo, como:
Vía: Planetozh
Introducción a la clase WP_Http
Desde la versión 2.7 de WordPress, se puede hacer uso de esta clase, pero a partir de la versión 3, para poder hacer uso de ella, hay que incluirla explicitamente en nuestro código.
if( !class_exists( 'WP_Http' ) ) include_once( ABSPATH . WPINC. '/class-http.php' );
El poder de esta clase, reside en que dependiendo de como está configurado el servidor y de los método que tenga implementado, utilizará la mejor de esas opciones para hacer las llamadas HTTP. Con esta clase, no hace falta comprobar si está activo fopen() o curl_init(), ya que ella se encarga de hacer todo esto.
El código básico que debemos de utilizar es:
request = new WP_Http; $result = $request->request( 'http://some.url.you-need.to-fetch' );
La variable $result, será un array que contiene los siguientes elementos:
Headers: Un array con las cabeceras de la respuestas, por ejemplo “x-powered-by => PHP/5.2.1”
Body: La cadena de respuesta enviada por el servidor, como tú deberías verla en tu navegador.
Response: Un array de códigos de respuesta HTTP
cookies: un array de información de cookies
Veamos ahora un ejemplo más complejo. Supongamos que queremos recoger las últimas búsquedas en twitter sobre conejos.
$url = 'http://search.twitter.com/search.json?q=rabbits'; $request = new WP_Http; $result = $request->request( $url ); $json = $result['body'];
Con esto conseguiremos recuperar una cadena JSON con los resultados de la búsqueda.
Ahora nos meteremos en un caso un poco más avanzado. Si necesitamos meter algunos parámetros por POST, lo podemos hacer de la siguiente forma.
$body = array( 'nick' => 'ozh', 'mood' => 'happy' ); $url = 'http://your.api.url/'; $request = new WP_Http; $result = $request->request( $url, array( 'method' => 'POST', 'body' => $body) );
Digamos que usted desea actualizar su cuenta de Twitter. Su método de actualización de estado es una simple solicitud, pero que además necesita de autenticación (es decir,http://twitter.com/statuses/update.xml pide su nombre de usuario y contraseña de Twitter)
Autenticación en las peticiones HTTP se logra mediante el envío de una cadena codificada en base64 del nombre de usuario, dos puntos y la contraseña (es decir, "usuario: contraseña")
Nuestro ejemplo Twitter sería algo sencillo, como:
// You would edit the following:
$username = 'joe'; // Twitter login
$password = '123456'; // Twitter password
$message = "Hey neat, I'm posting with the API";
// Now, the HTTP request:
$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 ) );
Vía: Planetozh
![]() |
Publicado por: Administrador |
|
|
Comentarios
Últimas noticias
· factura
Últimos artículos














































