【问题标题】:How to get the request body bytes in Flask?如何在 Flask 中获取请求正文字节?
【发布时间】:2020-02-01 02:11:21
【问题描述】:

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

【问题讨论】:

    标签: python flask


    【解决方案1】:

    可以通过调用request.get_data()获取非表单相关数据通过访问request.formrequest.files可以获取解析后的表单数据。

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

    您可以使用request.get_json() 将正文解析为 JSON,但这不会像您的问题所暗示的那样自动发生。

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

    【讨论】:

      【解决方案2】:

      要流式传输数据而不是一次读取所有数据,请访问 request.stream

      【讨论】:

        【解决方案3】:

        如果您希望将数据作为字符串而不是字节,请使用request.get_data(as_text=True)。这仅在正文实际上是文本而不是二进制数据时才有效。

        【讨论】:

          【解决方案4】:

          如果数据是JSON,使用request.get_json()解析。

          【讨论】:

            猜你喜欢
            • 2021-03-07
            • 1970-01-01
            • 2021-07-22
            • 2021-10-29
            • 2023-03-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-08-10
            相关资源
            最近更新 更多