请求的content-type
是application/json
,但我想获取请求正文字节。 Flask会自动将数据转换为json
。我如何获得请求正文?
答案 0 :(得分:2)
您可以通过调用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上的文档。
答案 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)
希望这对您有用。它对我有用!