在通过SSL运行时,无法在Flask中解析请求数据

时间:2017-06-07 13:21:37

标签: python ssl nginx flask uwsgi

我有一个基于Flask的app运行,它有一个响应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。

1 个答案:

答案 0 :(得分:0)

因此,以下代码有效......

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

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