如何在Flask中获取请求体字节?

时间:2016-04-19 07:51:23

标签: python flask

请求的content-typeapplication/json,但我想获取请求正文字节。 Flask会自动将数据转换为json。我如何获得请求正文?

4 个答案:

答案 0 :(得分:2)

您可以通过调用request.get_data()来获取与表单无关的数据。您可以通过访问request.formrequest.files来获取已解析的表单数据。

但是,您访问这两者的顺序将更改get_data返回的内容。如果您先调用它,它将包含完整的请求正文,包括原始表单数据。如果您将其调用为秒,则通常为空,并且将填充form。如果您想要一致的行为,请致电request.get_data(parse_form_data=True)

您可以使用request.get_json()将身体解析为JSON,但这不会像您提出的问题那样自动发生。

有关详细信息,请参阅dealing with request data上的文档。

答案 1 :(得分:1)

如果您正在寻找

,那么您可以将您的回复编码为某个字符集
from flask import request

Python3

bytes(request.data, "utf8")

Python2

request.data("utf8")

答案 2 :(得分:0)

我试试这个:

request.input_stream.seek(0)
print request.input_stream.read()

答案 3 :(得分:0)

有时可能是从request.get_data()函数获取请求数据(以字节为单位)的情况。要将此字节字符串转换为JSON,首先需要将字节转换为字符串。这可以通过使用字节的解码方法来完成

data_string = request.get_data().decode('utf-8')

现在,这是您的JSON,但采用字符串形式。您需要运行文字评估以将该字符串转换为JSON。可以按照以下步骤进行操作:

import ast
ast.literal_eval(data_string)

希望这对您有用。它对我有用!