urlfetch final_url возвращает None - PullRequest
1 голос
/ 11 марта 2010

Продукт, над которым я работаю, работает поверх Google App Engine. Он содержит код, подобный следующему:

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

Это всегда возвращает None. В документации сказано, что вернет правильный URL. Но это кажется проблемой. Я не могу использовать данный URL, так как между ними много 302.

Кто-нибудь знает, как решить то же самое?

1 Ответ

2 голосов
/ 11 марта 2010

Тестирование на shell.appspot.com показывает, что final_url заполняется тогда, когда выполняется перенаправление, и остается пустым, если не было:

>>> 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

Итак, чтобы получить окончательный URL, просто сделайте это:

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