如何在webapp2中访问PUT请求传入的数据?
获取webapp2中PUT请求的JSON数据
嘿,我来帮你搞定这个问题!要拿到你通过curl发送的{"content": "test"}数据,得手动读取请求体并解析成JSON格式——webapp2不会自动帮你完成这件事。下面是具体的实现步骤和代码示例:
首先要导入Python内置的json模块,然后在put方法里完成这几步操作:
- 用
self.request.body获取请求体的原始字符串内容 - 用
json.loads()把字符串解析成Python字典 - (可选但推荐)添加异常处理,避免无效JSON导致程序报错
修改后的完整代码如下:
import webapp2 import json # 导入json模块 class Test(webapp2.RequestHandler): def put(self): try: # 读取并解析请求中的JSON数据 request_data = json.loads(self.request.body) # 通过键名获取对应的值 content_value = request_data.get('content') self.response.write(f"收到的content值是: {content_value}") except ValueError: # 处理无效JSON的情况,返回400错误 self.response.status = 400 self.response.write("无效的JSON格式数据") app = webapp2.WSGIApplication([ ('/test', Test) ])
现在用你原来的curl命令重新发送请求,就能正确获取到content字段的值了。如果你的API需要严格校验请求类型,还可以先检查self.request.content_type是否为application/json,确保只处理符合要求的请求。
内容的提问来源于stack exchange,提问作者Anthony O'Brien
相关产品推荐
相关产品推荐

