当前位置: 首页 > 知识库问答 >
问题:

通过Curl[duplicate]向Flask发送JSON请求

孙光临
2023-03-14

我在烧瓶中设置了一个非常简单的帖子路线,如下所示:

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格式?

共有1个答案

凤财
2023-03-14

根据get_json文档:

[...]函数将返回如果mimetype不是应用程序/json,但这可以被force参数覆盖。

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

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

或强制JSON解码与force=True

data = request.get_json(force=True)

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

curl localhost:5000/post -d "{\"foo\": \"bar\"}" -H 'Content-Type: application/json'
 类似资料:
  • 我如何发送此信息: 到API: 使用cURL,我目前一直在使用: 其中我得到了结果(NGrok): GET/testDir/curlPost。php HTTP/1.1 接受:text/html、Application/xhtml xml、image/jxr、/ 接受语言:en-GB 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537

  • null curl--不安全--header“Authorization:key=AIZASYBidMyAuthKeyisFinel-6NCJXJ-1JUVEM”--header“content-type:application/json”-d“notification:title:note-title.body:note-body}”https://fcm.googleapis.com/fcm/

  • response.content=statuscode:401,reasonprace:'unauthorized',version:1.1,content:system.net.http.streamcontent,header:{ rlogid:t6ldssk%28ciudbq%60anng%7fu2h%3f%3cwk%7difvqn*14%3f0513%29pqtfwpu%29pdhcaj%

  • 然而,当我通过UDP实现它时,我错过了这种方法

  • 我在Java客户端有以下代码,它调用基于Spring的REST服务,我得到一个HTTP 400错误。但它与POST man Client完美配合 Java客户端: 服务器端REST服务代码为 现在,当客户端发送请求时,它会给我http 400错误,这可能是因为在客户端,即时消息发送JSON字符串,而在服务器端,它是一个主体,但这在POST MAN上有效 谁能建议我如何通过Java向基于spring

  • 问题内容: 我是Android的新手,所以关于android的知识还不是很多,好的,请讲到重点,我需要通过用户名和密码进行 登录 ,因为我必须通过JSON进行http requset并返回响应也将以JSON格式提供。所以任何人都可以帮助我。谢谢。 问题答案: 试试这个代码