Acceder

Ver la Versión Completa : [ CONSULTA ] Dudas variables HTTP


Rsc
05/10/13, 22:49:25
Alguien puede explicar como usar las variables HTTP que vienen predefinidas en Tasker?, como integrarlas en una tarea?
Gracias

Caravantes
06/10/13, 11:24:27
Alguien puede explicar como usar las variables HTTP que vienen predefinidas en Tasker?, como integrarlas en una tarea?
Gracias

En primer lugar se me ocurre mirar la guía de usuario, en la página de variables ( http://tasker.dinglisch.net/userguide/es ) . Supongo que te refieres a lo que ahí se cita como ...

HTTP Código de Respuesta / Datos / Longitud del Contenido
(dinámica)) %HTTPR / %HTTPD / %HTTPL
Valores recibidos de la última acción HTTP POST/GET.

Siguiendo ese hilo, en la misma guía de usuario, esto es lo que dice de las acciones HTTP POST y HTTP GET ( http://tasker.dinglisch.net/userguide/es/help/ah_index.html )

HTTP Get

Envía una petición HTTP GET a un servidor web.

El código de respuesta es almacenado en %HTTPR. Un código de respuesta -1 indica que hay un problema haciendo la solicitud. Cualquier dato devuelto es almacenado en la variable %HTTPD si el tipo de contenido es texto o no especificado (máx 4K).

Ejemplo: Ejecutando un script

Servidor:Puerto: www.big.com [sin puerto especificado utiliza el 80]
Path: cgi-bin/palpable.pl
Atributos: [debe estar separado por nuevas líneas, sin espacios por favor]
color=rosa
aroma=floral
Tiempo de espera: 30 [tiempo de espera de lectura tras 30 segundos]
Content-Type: [por defecto: x-www-form-urlencoded]
Archivo: results.html [opcional: almacenar datos devueltos en /sdcard/results.html]

Las claves de atributos y valores son codificadas URL automáticamente.

Servidor:Puerto puede ser precedido por a) https:// si requiere una conexión segura y confiable b)nombre de usuario:contraseña@ que será utilizado como campo de 'header' de autorización básica en la petición.

HTTP Post

Envía una solicitud HTTP POST a un servidor web.

El código de respuesta es almacenado en %HTTPR. Un código de respuesta de -1 indica un problema haciendo la solicitud. Todo dato devuelto es almacenado en la variable %HTTPD si el tipo de contenido es texto o no especificado (máx. 4K).

Ejemplo: enviar un script de datos

Servidor:Puerto www.small.com [sin especificar puerto, usa el 80]
Path: cgi-bin/grinder.pl
Datos:
Nombre=Pepe
Pelo=Moreno
Tiempo de espera: 30 [tiempo de espera de lectura tras 30 segundos]
Content-Type: [por defecto es: x-www-form-urlencoded]
Archivo: results.html [opcional: almacenar datos devueltos en /sdcard/results.html]

Si el tipo de contenido es x-www-form-urlencoded, los datos deben ser formateados como en el ejemplo y las claves y valores serán codificados automáticamente.

Servidor:Puerto puede ser precedido por a) https:// si requiere una conexión segura y confiable b) nombre de usuario:contraseña@ que será utilizado como campo de 'header' de autorización básica en la petición.


En la Lección 4 tienes una explicación más detallada y varios ejemplos de cómo usar esas acciones y alguna de las variables que solicitas.
http://www.htcmania.com/showthread.php?t=627786

Te doy dos ejemplos más cercanos y concretos:

- La aportación del compañero Alfahuir, que hizo una tarea que nos predice el tiempo y la temperatura. En ese mensaje (y en otros posteriores del mismo hilo) tienes ejemplos de cómo usar la acción HTTP GET y la variable %HTTPD.
http://www.htcmania.com/showthread.php?p=7893053

- Los compañeros Maid450 y Guglegap hicieron una tarea para que Tasker avise del tiempo que falta para que el autobús llegue a la parada.
http://www.htcmania.com/showthread.php?p=9413538
http://www.htcmania.com/showthread.php?p=7893053

Todo esto último ha sido fácil de averiguar usando Google del siguiente modo: Tasker "HTTP Get" site:htcmania.com
que genera la siguiente página de resultados: https://www.google.es/search?num=50&newwindow=1&safe=off&rlz=1C1CHVQ_esES508ES508&es_sm=122&biw=1100&bih=549&q=Tasker+%22HTTP+Get%22+site%3Ahtcmania.com&oq=Tasker+%22HTTP+Get%22+site%3Ahtcmania.com&gs_l=serp.3...213706.213706.0.214519.1.1.0.0.0.0.1 26.126.0j1.1.0....0...1c.1.27.serp..1.0.0.Z0h0G_7e RTM
Entre las respuestas a esa búsqueda puedes obtener otros ejemplos y tareas concretas. También, de forma parecida, puedes hacer búsquedas similares para HTTP GET y para las variables por las que preguntabas.

Rsc
07/10/13, 00:16:37
Muchas gracias, había leído parte de lo que has indicado, pero lo de separar variable %HTTPD no lo había encontrado. Ahora ya puedo integrarlas en mis tareas. Un saludo y gracias

luk2009
25/11/13, 05:49:25
para una pagina que necesita el username y password, despues de entrar cierto comando
ejemplo:

http://192.168.xxx.xxx/2?A=4&p=1&X=1234

si introduzco esto en un browser luego me sale una ventana pidiendo el user name y el password. Como le paso estos parametros desde tasker con http get o http post?

gracias de antemano por su ayuda

maid450
25/11/13, 08:31:41
Habría que ver el tipo de autenticación que requiere el sitio:

Si lo que te sale al poner esa dirección es una página web con unos campos de texto para poner usuario y contraseña en efecto los tienes que pasar por GET o POST.
En este caso la forma sería viendo el código fuente de la página para sacar información que necesitas, busca el elemento <form> que tendrá una pinta similar a esta:
<form action="demo_form.asp">
Usuario : <input type="text" name="user"><br>
Password : <input type="text" name="pwd"><br>
<input type="submit" value="Enviar">
</form>
Esto indicaría que la información debe ir por GET y la página destino a la que debes enviar los datos es: http://URLactual/demo_form.asp
Por otro lado, las variables que tienes que enviar son "user" y "pwd" (el atributo "name" en los <input>) cada uno con los valores que sean.
La forma de enviar los datos es como describe Caravantes más arriba.

Si por otro lado lo que te sale es un popup pidiendote el usuario y password es un poco más facil, basta con que lo pongas en la url de esta forma:
http://usuario:[email protected]/2?A=4&p=1&X=1234
Sustituyendo "usuario" y "password" por los correctos, esta misma URL la puedes probar poniéndola en la barra de tu navergador para ver si funciona.
Esto se llama HTTP Basic Auth, si lo que te sale es un popup pero esta llamada no funciona puede que se trate de una HTTP Digest Auth que es algo diferente y lamentablemente Tasker no tiene soporte para este tipo hoy por hoy.

luk2009
26/11/13, 00:05:13
muchas gracias maid450

habia leido esto: Servidor:Puerto puede ser precedido por a) https:// si requiere una conexión segura y confiable b) nombre de usuario:contraseña@ que será utilizado como campo de 'header' de autorización básica en la petición.

pero algo debo haber puesto mal, porque no me funcionó.

sin embargo al leer lo que escribiste, lo hice y funciono perfecto. la forma correcta era esta: http://usuario:[email protected]/2?A=4&p=1&X=1234

tal cual lo indicaste.

gracias de nuevo y a seguir haciendo pruebas con mi sistema de alarmas, tasker y una tarjeta de conexion IP de mi alarma marca Envisalink.:ok: