我想使用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)
答案 0 :(得分:5)
你传递了一个参数,并将其映射为:
(r'/test/(.*)', MainHandler)
(.*)
传递了put方法,无论您在/test/
之后使用什么来访问此url路径。
像这样更新你的处理程序:
class MainHandler(webapp2.RequestHandler):
def put(self, myarg):
self.response.write('test put, myarg is %s' %myarg)
答案 1 :(得分:2)
TypeError: put() takes exactly 1 argument (2 given)
表示当你只指定1(self)时,使用2个参数调用方法'put'。
这应该有效:
class MainHandler(webapp2.RequestHandler):
def put(self, param):
self.response.write('test put')
答案 2 :(得分: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