一尘不染

无论内容类型标头如何,都可以在Python Flask中获取原始POST正文

flask

以前,我问过如何获取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

阅读 412

收藏
2020-04-05

共1个答案

一尘不染

使用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在这种情况下将显示为空。

2020-04-05