【问题标题】:post data using curl command使用 curl 命令发布数据
【发布时间】:2017-03-31 21:11:58
【问题描述】:

我尝试使用以下命令在 curl 中发布数据:

curl -X POST http://x.x.x.x:1111/send --data [{'virtual':'5555'}]

然后我在节点中得到这样的响应:

{ '{virtual:5555}': '' } 

如何将其转换为数组?我尝试过JSON.parse()JSON.stringify(),但结果是Unexpected token o 错误。

知道如何在 curl 命令中发布 json 数据吗? 我也试过:

curl ... -H "Accept: application/json" -H "Content-Type: application/json"

【问题讨论】:

    标签: json node.js curl


    【解决方案1】:

    尝试:

    curl -X POST -H "Content-Type: application/json" -d '[{"virtual":"5555"}]' "http://x.x.x.x:1111/send"
    

    那么你应该收到'[{"virtual":"5555"}]'的原始正文:

    var body = JSON.parse(req.body);
    

    或者,已经解析(如果您使用中间件)。你可以使用它:

    console.log(body.length); // 1
    console.log(body[0].virtual); // '5555'
    

    【讨论】:

    • 当我使用 console.log(request) 时,没有像 rawbody 这样的参数。那么我如何解析未定义的变量
    • 这是一个例子……我把它改成了req.body。注意它可能已经被解析了
    • 我也试过 req.body,我得到这样的响应 { '{virtual:5555}': ' ' } 结果我需要虚拟值。当我使用 req.body.virtual它给出了未定义的。还使用了 console.log(body[0].virtual);这个结果也给出了相同的结果“未定义”。
    • 请贴出你的代码和req.body的具体内容
    • 这是我使用的 curl 命令 curl -XPOST xxx.xxx.x.x:xxxx/send --data [{'virtual':'5555'}]。这是响应 { '{virtual:5555}': '' } 我需要虚拟值。使用 req.body.virtual 时,结果未定义。
    猜你喜欢
    • 2018-03-18
    • 2017-03-26
    • 1970-01-01
    • 2019-10-21
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    相关资源
    最近更新 更多