之前我问过How to get data received in Flask request因为 request.data
是空的。答案解释说 request.data
是原始帖子正文,但如果解析表单数据,则将为空。如何无条件获取原始帖子正文?
@app.route('/', methods=['POST'])
def parse_request():
data = request.data # empty in some cases
# always need raw data here, not parsed form data
最佳答案
使用 request.get_data()
获取原始数据,无论内容类型如何。数据被缓存,后续可以随意访问request.data
、request.json
、request.form
。
如果你先访问request.data
,它会先调用get_data
,并带参数解析表单数据。如果请求具有表单内容类型(multipart/form-data
、application/x-www-form-urlencoded
或 application/x-url-encoded
) 那么原始数据将被消耗。 request.data
和 request.json
在这种情况下会显示为空。
关于python - 无论 Content-Type header 如何,在 Python Flask 中获取原始 POST 正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999990/