0

我在我的电脑上运行一个 Python 应用程序,并将结果存储在 appengine 数据存储中以在我的网站中使用。

本地代码是:

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=......
4

2 回答 2

1

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

如果您肯定没有更改任何内容,那么您可能每秒进行大量调用,而 App Engine 要么限制速率,要么完全拒绝它们,尽管在这种情况下我预计会出现 403。尝试 1 req/second 或将 'User-Agent' 标头设置为有意义的东西 - 许多应用程序不喜欢未识别的自动请求。

headers['User-Agent'] = 'your app name'
于 2012-12-15T12:25:38.323 回答
0

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

感谢 Rhuterford,因为我在晚上考虑他的帖子,因为帖子方法的缺席是最合乎逻辑的解决方案。奥卡姆剃刀法则!

于 2012-12-17T09:46:07.987 回答