【发布时间】:2020-02-01 02:11:21
【问题描述】:
请求的content-type 是application/json,但我想获取请求正文字节。 Flask 会自动将数据转换为json。如何获取请求正文?
【问题讨论】:
请求的content-type 是application/json,但我想获取请求正文字节。 Flask 会自动将数据转换为json。如何获取请求正文?
【问题讨论】:
可以通过调用request.get_data()获取非表单相关数据通过访问request.form和request.files可以获取解析后的表单数据。
但是,您访问这两个的顺序会改变从get_data 返回的内容。如果您先调用它,它将包含完整的请求正文,包括原始表单数据。如果你调用它,它通常是空的,form 将被填充。如果您想要一致的行为,请致电request.get_data(parse_form_data=True)。
您可以使用request.get_json() 将正文解析为 JSON,但这不会像您的问题所暗示的那样自动发生。
有关更多信息,请参阅dealing with request data 上的文档。
【讨论】:
要流式传输数据而不是一次读取所有数据,请访问 request.stream。
【讨论】:
如果您希望将数据作为字符串而不是字节,请使用request.get_data(as_text=True)。这仅在正文实际上是文本而不是二进制数据时才有效。
【讨论】:
如果数据是JSON,使用request.get_json()解析。
【讨论】: