1

我想使用 HTTP PUT 方法,将数据发送到我的谷歌应用引擎应用程序,有什么好的例子吗?我在谷歌上找不到任何东西。

我下面的例子也不起作用。

import webapp2

class MainHandler(webapp2.RequestHandler):
    def put(self):
        self.response.write('test put')

app = webapp2.WSGIApplication([
    (r'/test/(.*)', MainHandler)
], debug=True)

我得到了这个错误。

TypeError: put() takes exactly 1 argument (2 given)
4

3 回答 3

5

你正在传递 put 一个参数,并像这样映射它:

(r'/test/(.*)', MainHandler)

之后(.*)通过 put 方法访问此 urlpath 的任何方法/test/
像这样更新您的处理程序:

class MainHandler(webapp2.RequestHandler):
    def put(self, myarg):
        self.response.write('test put, myarg is %s' %myarg)
于 2012-10-31T13:25:11.113 回答
2
TypeError: put() takes exactly 1 argument (2 given)

表示使用 2 个参数调用方法“put”,而您仅指定 1(self)。

这应该有效:

class MainHandler(webapp2.RequestHandler):
    def put(self, param):
        self.response.write('test put')
于 2012-10-31T13:25:26.363 回答
0

您可以使用请求对象中的 POST 变量

class MainHandler(webapp2.RequestHandler):
    def put(self):
        self.response.write(self.request.POST)

使用 curl 的示例用法

curl -X PUT -d"x=1&y=2" http://localhost:8080/add
于 2013-03-16T18:04:18.577 回答