压制冗长输出,只显示Curl命令的输出

我使用以下Curl命令curl -i -X POST -H 'Content-type:application/json' some_url -d '{ "some":"json"}'并得到以下输出。

HTTP/1.1 200 OK
Server: openresty
Date: Tue, 03 Apr 2018 14:28:38 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 3925
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.23
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 1000

{
    "jsonrpc": "2.0",
    "result": [{
        "hostid": "10225",
        "proxy_hostid": "0",
        "host": "sgw-2585-bus",
        "status": "0"
    }]
}

我只想从Curl命令中获取JSON输出以进行进一步处理。我怎样才能实现呢。

注:Curl不会像这样显示JSON输出,我已经格式化了JSON块。

点赞
用户4389579
用户4389579

你尝试过使用 -s--silent 选项吗?

curl man page

2018-04-03 14:42:33
用户9318057
用户9318057

从 curl man 页面可以知道,你只需要省去 -i 标志。

   -i, --include
          在输出中包含 HTTP 头。HTTP 头包括如服务器名称,文档日期,HTTP 版本等内容...

          另请参见 -v,--verbose。
2018-04-03 15:57:49
用户9320791
用户9320791

只需从您的命令中删除 -i 开关。下面的代码提供了您纯 JSON 响应

curl -s -X POST -H 'Content-type:application/json' some_url -d '{ "some":"json"}'
2018-04-03 16:00:41