如何从CLI CURL的请求输出中抑制标头

时间:2013-03-27 20:43:44

标签: rest curl command-line-interface

有很多关于如何在执行PHP版本请求时阻止curl显示头信息的信息,但对于CLI版本似乎没有任何内容。

我的请求是

形式
curl -i -X POST -H 'Content-Type: application/json; charset=UTF-8' -H 'X-Accept: application/json' -H '-d '{"somedata":"12ihiuhihihed994f63dbef6b012b"}' https://myurl.com/v3/oauth/request

哪个有效,但会返回:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json
Date: Wed, 27 Mar 2013 20:42:11 GMT
P3P: policyref="/w3c/p3p.xml", CP="ALL CURa ADMa DEVa OUR IND UNI COM NAV INT STA PRE"
Server: Apache/2.2.23 (Amazon)
Status: 200 OK
X-Powered-By: PHP/5.3.20
Content-Length: 54
Connection: keep-alive

{"code":"jkhjhhjhaa","state":null}

当我真正想要的是这个:

{"code":"jkhjhhjhaa","state":null}

4 个答案:

答案 0 :(得分:34)

只需从-i命令中删除curl开关。

man curl

说:

  

-i, - 包括
  (HTTP)在输出中包含HTTP标头。 HTTP标头包括服务器名称,文档日期,HTTP版本等等......

答案 1 :(得分:7)

为了禁止来自CURL CLI的输出,可以使用--silent选项。当卷曲输出也通过管道传输时,它完美地工作。

-s, --silent        Silent mode (don't output anything)

答案 2 :(得分:1)

如果这不太明显,也不要将-v(详细)开关与-s(静默)一起使用

答案 3 :(得分:0)

我使用 -vvvv 选项遇到同样的问题。如果你不想让它变得冗长,就不要使用它。