[pyar] Google App Engine: No resuelve URLs en entorno local

Diego Sarmentero diego.sarmentero en gmail.com
Jue Mar 21 08:22:03 ART 2013


Yo he intentado usar urllib en GAE para distintas cosas, y si bien
podes llegar a hacerlo funcionar siempre tiene sus temas, yo te
recomendaria usar directamente el que viene con app engine:

from google.appengine.api import urlfetch

content = urlfetch.Fetch(url, deadline=60, allow_truncated=True).content

El día 20 de marzo de 2013 22:33, Martin Rovere <noog100 en gmail.com> escribió:
> Hola,
>
> Estoy lidiando con un problema que no puedo resolver hace varios días con el
> app engine de google, asique la pregunta va destinada a aquellos que tengan
> conocimientos en esta tecnología o aquellos que tengan ganas de instalar el
> app engine para darme una mano con el troubleshooting.
>
> Paso a detallar el problema:
>
> Estoy queriendo fetchear una URL desde el app engine con urllib2.urlopen()
> tal como lo especifica la documentación pero me arroja un error de
> getaddrinfo failed. Este es el codigo con el que se replica el error:
>
> import webapp2
> import urllib2
>
> class MainPage(webapp2.RequestHandler):
> def get(self):
> self.response.out.write(urllib2.urlopen("http://www.google.com").read()
>
> app = webapp2.WSGIApplication([('/', MainPage), ], debug=True)
>
> El error que me arroja dice (mas abajo dejo el stack entero): Unable to
> fetch URL: http://www.google.com Error: [Errno 10106] getaddrinfo failed
>
> Ahora, si hago la llamada a urllib2.urlopen pasandole una direccion de IP no
> arroja ningun error:
>
> self.write(urllib2.urlopen("http://173.194.42.34").read())
>
> Esto me llevo a pensar que podria ser un problema de DNS, por lo que hice la
> misma llamada afuera del GAE, en el interprete de python, y resulta que
> resuelve bien la direccion:
>
>>>> import urllib2
>>>> urllib2.urlopen("http://www.google.com")
>
>
> Entonces decidi probar deployando la app, para comprobar que fuese un
> problema de mi entorno, y resultó que estaba en lo cierto. Ese mismo codigo
> funciona correctamente una vez deployado pero no en mi entorno local.
>
> Para llegar a estas conclusiones tuve que googlear bastante y postear varias
> preguntas en stackoverflow y el foro de udacity (mas abajo dejo los links a
> los threads).
>
> Mucha gente pregunta si estoy atras de un proxy, ya que el problema
> pareciera apuntar a eso, pero despues de checkear en paginas (como
> http://amibehindaproxy.com/) y comandos de windows me doy cuenta que no. Por
> lo menos no uno que se vea.
>
> C:\Users\Developer>netsh winhttp show proxy
>
> Current WinHTTP proxy settings:
>
>     Direct access (no proxy server)
>
>
> Tambien probe desactivando el firewall y antivirus con los mismos
> resultados.
>
> Asi decidí probarlo en otras pcs. Empece con la laptop de mi hermano, que
> sale por el mismo router que esta PC y el resultado fue el mismo. Le pedí a
> un amigo que lo probara desde la oficina y el problema fue el mismo. Hago
> notar que los ISPs fueron siempre Fibertel.
>
> Principalmente les escribo a ustedes, ya que por ser una comunidad local hay
> posibilidad de compartir ISP y de comprobar que otros ISPs de la zona tienen
> o no tienen el mismo problema, descartando del problema una fuente mas.
>
> Necesitaría que alguien probara si le sucede lo mismo para poder aislar si
> es un problema de Fibertel o estoy equivocandome en algo. Si ya tienen el
> app engine instalado, les toma muy poco tiempo probarlo y me ayudan
> muchisimo.
>
> Les agradezco desde ya!
>
> Saludos.
>
> ############################
>
> Aca estan los links de stack overflow y udacity:
>
> http://stackoverflow.com/questions/15492961/cannot-fetch-urls-from-gae-local-environment
> http://stackoverflow.com/questions/15514953/gae-getaddrinfo-error-on-urlopen
> http://stackoverflow.com/questions/15501245/gae-urllib2-not-working-on-local-environment
> http://forums.udacity.com/questions/100041915/unit-5-problem-with-urllib2open-in-google-app-engine
>
> ############################
>
> Este es el stack trace:
>
> Traceback (most recent call last):
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in
> __call__
>     rv = self.handle_exception(request, response, e)
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in
> __call__
>     rv = self.router.dispatch(request, response)
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in
> default_dispatcher
>     return route.handler_adapter(request, response)
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in
> __call__
>     return handler.dispatch()
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in
> dispatch
>     return self.handle_exception(e, self.app.debug)
>   File "C:\Program Files
> (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in
> dispatch
>     return method(*args, **kwargs)
>   File "C:\Users\Developer\Desktop\test\main.py", line 15, in get
>     self.write(urllib2.urlopen("http://www.google.com").read())
>   File "C:\Python27\lib\urllib2.py", line 126, in urlopen
>     return _opener.open(url, data, timeout)
>   File "C:\Python27\lib\urllib2.py", line 400, in open
>     response = self._open(req, data)
>   File "C:\Python27\lib\urllib2.py", line 418, in _open
>     '_open', req)
>   File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
>     result = func(*args)
>   File "C:\Python27\lib\urllib2.py", line 1207, in http_open
>     return self.do_open(httplib.HTTPConnection, req)
>   File "C:\Python27\lib\urllib2.py", line 1180, in do_open
>     r = h.getresponse(buffering=True)
>   File "C:\Program Files
> (x86)\Google\google_appengine\google\appengine\dist27\httplib.py", line 507,
> in getresponse
>     'An error occured while connecting to the server: %s' % e)
> error: An error occured while connecting to the server: Unable to fetch URL:
> http://www.google.com Error: [Errno 10106] getaddrinfo failed
>
> ############################
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Diego Sarmentero

Blog: http://diegosarmentero.com
Twitter: http://twitter.com/diegosarmentero



More information about the pyar mailing list