sábado, 28 de marzo de 2015

Mini-Tutorial HTTP GET. Recuperar datos de internet.

Una función que ofrece Tasker es poder recoger datos a partir de una dirección web para ser procesados. Todo esto se consigue con la acción HTTP GET.

La acción HTTP GET permite insertar un Puerto/servidor al que acceder y el tipo MIME de dato que queremos recoger. 

Por ejemplo, si queremos ir a la url de tutiempo.net y recoger un xml para procesar crearemos una acción HTTP GET en Tasker con servidor/puerto http://xml.tutiempo.net/xml/3768.xml y tipo MIME xml, ya que estamos recogiendo un tipo XML.

Cuando se ejecute la acción, Tasker automáticamente graba los datos recibidos en la variable de sistema %HTTPD.

Por lo tanto, tendríamos en la variable %HTTPD algo así (xml recibido de la url que pusimos en servidor/puerto):

<fecha>2015-3-28</fecha><fecha_larga>Sábado 28 de Marzo</fecha_larga><temp_maxima>28</temp_maxima><temp_minima>13</temp_minima><icono>http://i5.tutiempo.net/wi/01/50/2.png</icono><texto>Nubes dispersas</texto>

Ahora bien, lo interesante es poder tratar esta información, para esto existe una funcionalidad bastante potente en Tasker. Se llama Separar Variable.

La acción Separar Variable nos va a servir para que, a partir de los datos recogidos, podamos obtener el que nos interese.
Pensemos que Separar Variable actúa como cuando hacemos un ctrl+F (Búsqueda de texto) en una página.

Si buscáis por ejemplo en esta página "<temp_maxima>" el cursor se situará en este texto, dividiendo el texto global en 2 partes, lo que queda a la izquierda del texto y lo que queda a la derecha.

Pues bien, si hacemos una acción Separar Variable sobre la variable %HTTPD y como separador usamos "<temp_maxima>", Tasker automáticamente nos generará dos variables: 

%HTTPD1 con contenido: <fecha>2015-3-28</fecha><fecha_larga>Sábado 28 de Marzo</fecha_larga>
%HTTPD2 con contenido: 28</temp_maxima><temp_minima>13</temp_minima><icono>http://i5.tutiempo.net/wi/01/50/2.png</icono><texto>Nubes dispersas</texto>

Ahora tendríamos 3 variables: %HTTPD con el xml completo y %HTTPD1 y %HTTPD2 con los textos anteriores.

Si nos interesara recoger por ejemplo el valor de la temperatura máxima tendríamos ahora que usar Separar Variable con la variable %HTTPD2.

Como separador se usaría  "</temp_maxima>". Esto haría que Tasker creara otras dos variables:

%HTTPD11 con contenido: 28
%HTTPD12 con contenido: <temp_minima>13</temp_minima><icono>http://i5.tutiempo.net/wi/01/50/2.png</icono><texto>Nubes dispersas</texto>

Por lo tanto, ya tendríamos en la variable %HTTPD11 la temperatura máxima, 28º.

Ahora este dato ya podríamos tratarlo como quisieramos. Por ejemplo, con una acción "Decir" de Tasker podemos hacer que nos diga la temperatura máxima al conectar el móvil al cargador.

1 comentario:

danilo662 dijo...

Excelente explicación