Send JSON-Request to Flask via Curl
本问题已经有最佳答案,请猛点这里访问。
我在烧瓶中设置了一个非常简单的邮政路线,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from flask import Flask, request app = Flask(__name__) @app.route('/post', methods=['POST']) def post_route(): if request.method == 'POST': data = request.get_json() print('Data Received:"{data}"'.format(data=data)) return"Request Processed. " app.run() |
这是我试图从命令行发送的curl请求:
1 | curl localhost:5000/post -d '{"foo":"bar"}' |
但是,它仍然打印出"接收到的数据:"无"。所以,它无法识别我传递的JSON。
在这种情况下,是否需要指定JSON格式?
根据
[..] function will return
None if the mimetype is notapplication/json but this can be overridden by theforce parameter.
因此,可以指定传入请求的mimetype为
1 | curl localhost:5000/post -d '{"foo":"bar"}' -H 'Content-Type: application/json' |
或使用
1 | data = request.get_json(force=True) |
如果在Windows(
1 | curl localhost:5000/post -d"{"foo": "bar"}" -H 'Content-Type: application/json' |