1. 1
Requests con lettuce y python
Hacer una request
Lo primeroque tengoque hacerpara poderutilizarlo,unavezinstaladoel pipfuncionandoes
instalarlalibrería.Esto se hace de una maneramuysencilladesde laventanade comandos
(cmd),poniendolosiguiente:
Una vez hechoesto,soycapaz de importarla libreríaenpython.Una vezrealizadoesto,voya
empezarconmi primerejemplode request.Loprimerque hagoescrearme unnuevo proyecto
y losdos archivosnecesarios:.pyy.feature,conlocual mi directoriodeberíaquedarasí:
Lo primeroque hagoes crearme una feature que accedaa una URL cualquiera.Paraellohago
losiguiente:
Una vez realizadoesto,enmi archivo.py tengoque realizarel código.Paraelloimportolas
libreríasnecesarias(eneste casolade lettuce ylade requests) yhagolos@step
correspondientes(queeneste casosolohayuno).
2. 2
El payloadsirve parapasarle parámetrosa laurl, loscualespueden onoestar.Si realmente los
necesito,he de ponerlosjustodespuésde laURL enel get,tal y como se muestraenla imagen.
Finalmenteel printloponemosúnicamenteparaver el códigoque me devuelve,si es200
quiere decirque estátodook.Otro código de error puede serel 404 que indicaque no se ha
podidoaccedera la pagina. Si todova bien,deberíaobtenerel siguiente mensajeenventana
de comandos:
Ahora,si agrego la línea me lee el contenidode larespuestadel servidor.
Ademáshaydiferentesmanerasde codificarlainformaciónmostrada.Unade ellases:
No esnecesarioañadirestalínea,yaque te loimprime pordefecto,soloesnecesarioenel
caso de querercambiarla codificacióndel mismo.
Si quieroque me loimprimacon Jsonloque tengoque hacer essimplemente agregaresta
línea:
En el caso de que laURL a laque estoyintentandoaccederme dé unerror (porejemploerror
401, no autorizado) entoncesenlalíneade comandosme dará el siguienteerror:
3. 3
Esto quiere decirque debidoaque nopuede accederala pagina,tampocopuede imprimirlo
enformatoJson.
Es posible obtenerel rawsocketde de un protocolo.Estoes realmente raroquererobtenerlo,
perosolopor si acaso se utilizade lasiguientemanera:
Todo estoque hagocon el Get lo puedohacerde igual maneracon el post.Al hacerlocon el
getobtengotodala informaciónque necesitode unrecurso.Es decirlee unrecursoy me
devuelveinformación.Porotroladoal hacerlocon el post,loque hago esmandar cierta
información.
Por otra parte,tambiénesposible devolverel estadode lasiguiente manera:
Podemosverlatraza de respuestaque nosda el servidorponiendolasiguiente línea:
Y obtendremosunarespuestacomoesta:
Tambiénse puede añadiruntime out,para decirle que si noha respondidoenciertoperiodo
de tiempo,que pare.Estose hace de la siguiente manera:
Ejemploparahacer unarequestcon Json, python,lettuce yrequests:
Lo primeroque hago,como bienhemosdichoantesescrearun .feature archivo.Estoseriade
la siguientemanera:
4. 4
Comopodemosobservarenlasdospestañasde arriba tenemosyalosdosarchivoscreados.Y
el códigoque viene acontinuaciónesel de feature.Ahoranosocuparemosdel archivo.py.
Antesde continuar,he de destacarque para realizarcualquiertestenlettuce esnecesario
tenerestosdosarchivos,encaso contrario,daría error.
Ahorael archivo.py quedaríade la siguiente manera:
Y en la ventanade comandosejecutoel archivo .featuresde lasiguiente manera:
Y la respuestaque obtengoparaeste ejemploeslasiguiente:
5. 5
Cada una de las líneasse corresponde alasde su mismocolorde la imagenanterior.Las
últimastreslíneasindicanque el testse pasocon éxito.
Otro ejemplocongoogle maps:
Es importante destacarque enla URL hay que ponertoda ladirecciónque viene enel
navegador,apesar de que enesta segundaimagennose aprecie.
La respuestade estaessimilaralaanteriorperoel contenidoesmuchomayor.Una parte de la
respuestaeslasiguiente: