python
runtime_error
ai_generated
true
请求数据错误:在读取请求数据流后无法访问 body
django.http.request.RawPostDataException: You cannot access body after reading from request's data stream
ID: python/django-request-data-error
80%修复率
82%置信度
0证据数
2025-06-20首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.2 | active | — | — | — |
| 4.0 | active | — | — | — |
| 5.0 | active | — | — | — |
根因分析
Django 请求对象不允许重复读取 body 数据
English
多次尝试读取请求体,但请求体只能读取一次
解决方案
-
95% 成功率 一次性读取并缓存
data = request.body; 之后使用 data 变量
-
90% 成功率 使用中间件缓存请求体
使用 django.utils.datastructures.MultiValueDictKeyError 处理
无效尝试
常见但无效的做法:
-
尝试重新读取 request.body
100% 失败
请求体流已消耗,无法再次读取
-
使用 request.POST 代替
60% 失败
如果请求是 JSON,request.POST 可能为空