nikaTeleco1junio

Comenzamos la clase viendo el resumen del día anterior de AlexBM. Luego yo pregunté una duda sobre AJAX y por último Vallesquino leyó su ejercicio de autoevaluación sobre la Web 2.0. Luego ya seguimos con el temario.

=**T3.2 El protocolo HTTP y sus múltiples utilidades**=

Los comandos GET (para obtener la página) y POST (para enviar formularios) ya los conocemos de sobra, aunque existe también HEAD que obtiene la cabecera de la página y se utiliza sobre todo para saber si un recurso ha cambiado. Luego tenemos el comando PUT que es parecido a GET: crea o cambia recursos para una URL determinada. Sin embargo, posee problemas de seguridad y suele usarse para usuarios autentificados. Por último, DELETE elimina la URL.

Podemos dividir estos comandos en seguros o idempotentes según si dejan al servidor en el mismo estado en el que se encontraba o si la acción es la misma aunque se ejecuten muchas veces: POST à ninguno de los dos (cada vez que se ejecuta da una salida diferente) GET à seguro HEAD à seguro PUT à idempotentes DELETE à idempotentes

Tras la petición el servidor te responde con un código de estado de petición. Vimos algunos de ellos en este enlace. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

200 es el que dice que se ha hecho correctamente. Recordamos que en la práctica AJAX si no te devolvía el código 200 la petición estaba mal.

Vamos a trabajar con twitter desde el cliente. Vemos un ejemplo con la API de Twitter. Accedemos al usuario aap_ugr (password: xxx_xxx). El programa en Perl es: code
 * 1) !/usr/bin/perl

use LWP::UserAgent;

//Antes simple solo se bajaba cosas

use HTTP::Request::Common qw(POST GET); //Le pasas por la linea de comandos el estado que kieres que tenga

//Este es el comando REST my $status = shift; my $ua = LWP::UserAgent->new; //Creamos el agente de usaurio y a continuacion la peticion

//Formato general del url my $req = POST 'http://aap_ugr:ugr_aap@twitter.com/statuses/update.xml', [ status => $status ]; //Lo ultimo es el POST //No poner la contraseña en el WIKI!!!!!!!!!!!

my $res = $ua->request($req); print "Resultado:\n",$res->content,"\n";

code Seguimos un poco con twitter y hacemos el ejercicio de autoevalución.

=**T3.3 Llamada remota a procedimientos usando XML: XML-RPC**=

Es un paso un poco mas allá de lo que hemos visto hasta ahora. El resultado también lo devuelve como una estructura de datos (arrays). Es un protocolo para acceder a recursos de forma fácil. Protocolo anterior a SOAP (protocolo de acceso siempre a objetos).

En XML-RPC podemos trabajar en ruby, perl…Tiene un montón de librerías. Vemos un ejemplo en ruby para enviar una entrada a un blog: code
 * 1) !/usr/bin/ruby

require 'rexml/document' require 'xmlrpc/client' require 'pp'

include REXML documento = ARGV[0] file = File.new(documento) doc = Document.new(file) titulo = doc.root.elements['titulo'][0].to_s contenido = doc.root.elements['contenido'][0].to_s

print titulo print contenido server = XMLRPC::Client.new2("http://aapugr.wordpress.com/xmlrpc.php" ); fecha = Time.new.to_a pp fecha
 * 1) Enviar

//pasamos la fecha a ASCII pp fecha.to_a item = { 'title' => titulo, 'description' => contenido, 'pubDate' => Time.gm(fecha[5],fecha[4],fecha[3],fecha[2],fecha[1],fecha[0],0), 'publish' => true } print "Enviando: " pp item; result = server.call("metaWeblog.newPost", 1,'aapugr', '448e83', item ) //nombre de espacio con el q estamos trabajando //nomber de la funcion con la q estamos trabajando //1 es la bitacora numero 1, puedes tener varias pp result

code