【问题标题】:Can't parse request data in Flask when running over SSL通过 SSL 运行时无法解析 Flask 中的请求数据
【发布时间】:2017-11-08 21:08:28
【问题描述】:

我有一个基于 Flask 的应用程序正在运行,它有一个响应 POST 命令的路径。传入的数据是json所以我使用get_json()方法来解析数据。

我现在已将服务器更改为运行 nginx 和 uwsgi,因为我现在使用 SSL。应用程序中的所有路径都有效 (GET),但基于 POST 的路径不再将传入数据视为 python 并失败。数据在 request.data 中可见,但 get_json 方法失败。

@school_app.route('/school/queries', methods=['POST'])
def school_queries():
    req = request.get_json(silent=True, force=True)
    command_name = req["result"]["parameters"]["command-name"]

我也尝试通过 json.loads 推送 request.data,但这也失败了。

req = json.loads(request.data)

我假设服务器更改已经影响了数据,但我不明白为什么它不能再被解析为 json。

【问题讨论】:

  • 您是否尝试在通话中添加 headers={'content-type': 'application/json'}?

标签: python ssl nginx flask uwsgi


【解决方案1】:

所以,下面的代码可以工作...

data = request.data
req = json.loads(data)
command_name = req["result"]["parameters"]["command-name"]

仍然不确定为什么 get_json 方法在切换到 SSL/nginx/uwsgi 后停止工作,但至少它可以工作。

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2016-02-09
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多