python – 通过Curl向Flask发送JSON-Request [复制]

前端之家收集整理的这篇文章主要介绍了python – 通过Curl向Flask发送JSON-Request [复制]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How to get POSTed json in Flask?4个
> How to POST JSON data with Curl from Terminal/Commandline to Test Spring REST?17个
我在烧瓶中设置了一个非常简单的邮政路线:
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.\n"

app.run()

这是我尝试从命令行发送的curl请求:

curl localhost:5000/post -d '{"foo": "bar"}'

但仍然打印出“收到的数据:”无“”.所以,它无法识别我传递的JSON.

在这种情况下是否有必要指定json格式?

解决方法

根据 get_json文档:

[..] function will return None if the mimetype is not application/json but this can be overridden by the force parameter.

因此,要么将传入请求的mimetype指定为application / json:

curl localhost:5000/post -d '{"foo": "bar"}' -H 'Content-Type: application/json'

或使用force = True强制进行JSON解码:

data = request.get_json(force=True)

如果在Windows上运行此命令(cmd.exe,而不是PowerShell),则还需要更改JSON数据的引用,从单引号到双引号:

curl localhost:5000/post -d "{\"foo\": \"bar\"}" -H 'Content-Type: application/json'
原文链接:https://www.f2er.com/python/185730.html

猜你在找的Python相关文章