Pregunta

El producto que estoy trabajando se ejecuta en la parte superior de Google App Engine. Contiene código similar al siguiente:

    result = urlfetch.fetch(url, **parms)
    log('%s' %result.final_url)

Esto siempre devuelve None. En la documentación que dice que devolverá la URL correcta. Pero esto parece ser un problema. No puedo usar la URL dada ya que hay una gran cantidad de 302 sucediendo en el medio.

¿Alguien sabe cómo resolver la misma?

¿Fue útil?

Solución

Pruebas de shell.appspot.com demuestra que final_url se rellena si y sólo si se ha seguido un redireccionamiento, y se deja en blanco si no fuera:

>>> from google.appengine.api import urlfetch
>>> urlfetch.fetch('http://google.com/').final_url
'http://www.google.com/'
>>> urlfetch.fetch('http://www.google.com/').final_url

Así que para obtener la URL final, acaba de hacer esto:

result = urlfetch.fetch(url, **parms)
final_url = result.final_url or url
log('%s' % final_url)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top