【发布时间】:2012-08-07 08:58:56
【问题描述】:
我想知道为今天刚刚更改的 url 获取请求提供服务的应用引擎代理是否存在某些限制。例如,这个 url http://www.google.com/ig/calculator?q=1eur=?usd 直到几个小时前才顺利运行。这是我现在遇到的错误
http://www.google.com/ig/calculator?q=1eur=?usd 返回错误:HTTP 错误 503:服务不可用
请注意,在 SDK(使用我的本地互联网连接)中,以下代码有效。 'curl http://www.google.com/ig/calculator?q=1eur=?usd' 也有效,所以我不认为是谷歌限制请求不是来自最终用户浏览器(即没有无用的用户代理)。这可能是几个小时前在应用引擎基础架构中发生的变化。
url = 'http://www.google.com/ig/calculator?q=1eur=?usd'
request = urllib2.Request(url = url, data = None)
try:
response = urllib2.urlopen(request)
except urllib2.URLError, e:
raise Exception("%s returned an error: %s" % (url, e))
【问题讨论】:
-
你试过
urlfetch.fetch吗?还有什么例外?我认为503也不例外。 -
可能是服务限制了来自同一 IPAddress 的请求数。您每天发送多少个请求(尽管它们可能是使用该服务的其他 appengine 应用程序,这也会导致限制)?有没有不出错的时候?
-
好吧,我从 cron 执行这个。每小时一次,所以不要滥用它。
-
是的,没关系。错误 503: Service Unavailable 确实是 Exception 错误。自然是对应 503 HTTP 返回码。
标签: python google-app-engine igoogle