python
runtime_error
ai_generated
true
RuntimeError: Stream consumed
ID: python/starlette-request-body-consume-error
80%Fix Rate
84%Confidence
0Evidence
2025-02-10First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 3.x | active | — | — | — |
Root Cause
在 Starlette 中多次读取请求体,而请求体只能读取一次。
generic中文
在 Starlette 中多次读取请求体,而请求体只能读取一次。
Workarounds
-
95% success
在第一次读取后缓存 body,如 request._body = await request.body()
-
90% success
使用中间件一次性读取并将 body 存入 request.state
-
85% success
使用 ASGI 的 receive 包装器缓存请求体
Dead Ends
Common approaches that don't work:
-
80% fail
应用再次读取会报错。
-
90% fail
第二次调用会引发 RuntimeError。
-
70% fail
不符合 ASGI 规范。