Página 1 de 1

EasyDev con Requests

Publicado: Sab Dic 26, 2015 9:17 pm
por mauricio
Abro este tema de forma independiente al original de EasyDev, por que el tema tratado puede llegar a ser bastante largo también...

Como comunicarse con servidores web es un tema recurrente, en Python tenemos la mejor librería para hacer este trabajo, se llama Requests: http://docs.python-requests.org/en/latest/

Es tan sencilla de usar que no puede faltar en EasyDev, la he integrado en una rama de desarrollo y pueden ayudarme a probarla desde aquí: https://github.com/UniversoLibreMexicoA ... v2.5.0.oxt

Con esta librería se pueden hacer cosas tan simples, como saber nuestra IP publica.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "http://api.ipify.org"
    response = util.requests(data)
    ip_public = response.Text
    MsgBox ip_public
Y con nuestra IP pública (o cualquier IP o nombre de dominio), saber donde esta localizada.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "http://api.ipify.org"
    response = util.requests(data)
    ip_public = response.Text

    data.Url = "http://freegeoip.net/csv/" & ip_public
    response = util.requests(data)
    util.msgbox(response.Text)
Hasta cosas tan sofisticadas como la facturación electrónica, con esta librería hago todos los procesos contra webservice en Factura Libre.

CUIDADO Si están usando AOO o LibO en Windows y usan un servidor con HTTPS, por ahora, deben de deshabilitar la verificación del mismo de la siguiente manera.

Código: Seleccionar todo

    util = createUnoService("org.universolibre.EasyDev")
    data = createUnoStruct("org.universolibre.EasyDev.Requests")

    data.Method = "get"
    data.Url = "https://api.ipify.org"
    args = Array( _
        Array("verify", False) _
    )
    data.Args = args
    response = util.requests(data)
    ip_public = response.Text
Incluso en algunos que no sea posible esto, tal vez obtengan un error. Estoy viendo como integrar el total de librerías necesarias.

Pero... por ahora, con esto tienen para jugar un rato, la cantidad de servicios disponibles por webservice o por algun api web, es inmensa y sigue creciendo.

La librería tiene soporte incluso para páginas donde se tiene que identificar, pero, ya iremos viendo caso por caso.

!Feliz programación¡

Re: EasyDev con Requests

Publicado: Mié Ene 06, 2016 3:13 am
por mauricio
He pasado esta rama a desarollo, he agregado un ejemplo de autenticación basica para las páginas que lo requieran:
https://github.com/UniversoLibreMexicoA ... quests.rst

Saludos

Re: EasyDev con Requests

Publicado: Sab Ene 23, 2016 7:00 pm
por mauricio
He pasado a producción esta característica... en cuanto empiecen a ver su potencial, no podrán estar sin ella, jejej...

Dejo abierto este tema, por si tienen dudas de su uso o problemas al conectarse a algún sitio.

Saludos