You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:33:13