Appengine的条款有所变化

时间:2012-12-15 12:07:07

标签: python google-app-engine

我正在我的电脑上运行一个Python应用程序,我将结果存储在appengine Datastore上,以便在我的网站上使用。

本地代码是:

def invia(utente, numero, tweet, link1, risorsa):
        params = urllib.urlencode({'utente': utente, 'numero': numero, 'tweet': tweet, 'link1': link1, 'risorsa': risorsa})
        headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
        conn = httplib.HTTPConnection("myapp.appspot.com")
        conn.request("POST", "", params, headers)
        response = conn.getresponse()
        print response.status, response.reason

它运行良好,现在我接受了新条款,应用程序不再工作了,它得到了405错误。我怎么解决这个问题?它真的与新条款有关吗?

2012-12-15 03:29:58.770 / 405 49ms 0kb
000.000.00.000 - - [15/Dec/2012:03:29:58 -0800] "POST / HTTP/1.1" 405 124 - - ".....appspot.com" ms=50 cpu_ms=0 cpm_usd=0.000014 instance=......

2 个答案:

答案 0 :(得分:1)

我最近没有接受任何新条款。通常,该错误是发出POST请求的结果,并且服务器上的关联RequestHandler未实现post()方法。

如果你肯定没有改变任何东西,也许你每秒都会拨打大量的电话,而App Engine要么是速率限制要么是拒绝它们,尽管在这种情况下我预计会有403。尝试1 req /秒或将'User-Agent'标题设置为有意义的内容 - 许多应用程序不喜欢未识别的自动请求。

headers['User-Agent'] = 'your app name'

答案 1 :(得分:0)

好的,经过三天的工作,我试着想一想。在webapp.WSGIApplication()中输入错误,因此应用程序将“POST”发送到没有任何def post()的类。我疯了!

感谢Rhuterford,因为我在晚上考虑他的帖子,因为缺少后期方法是最合乎逻辑的解决方案。 ockham的剃刀规则!