在 Python Flask 中获取原始 POST 正文,无论 Content-Type 标头如何
回答问题 之前我问Flask请求中如何获取接收到的数据,因为request.data是空的。答案解释说request.data是原始帖子正文,但如果解析表单数据,它将为空。如何无条件获得原始帖子正文? @app.route('/', methods=['POST']) def parse_request(): data = request.data # empty in some cases #
·
回答问题
之前我问Flask请求中如何获取接收到的数据,因为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
Answers
使用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
将显示为空。
更多推荐
已为社区贡献126473条内容
所有评论(0)