不管Content-Type标头如何,都可以在Python Flask中获取原始POST正文
问题内容:
之前,我问过如何获取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
问题答案:
使用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
在这种情况下将显示为空。