是否可以指示cURL抑制响应体的输出?
在我的例子中,响应主体是一个HTML页面,它会溢出CLI缓冲区,因此很难找到相关信息。我想检查输出的其他部分,比如HTTP响应代码、头文件、e.t.c.-除了实际的HTML之外的所有内容。
您可以使用-o
开关和null
伪文件:
curl -s -o /dev/null -v http://google.com
curl -s -o nul -v http://google.com
这里有一种抑制所有curl输出和标题的方法,如果出现错误,还可以选择显示错误。用于cron作业或自动测试。
要抑制所有输出:
curl --silent --output /dev/null http://example.com
要抑制输出但在出现错误时仍显示错误,请执行以下操作:
curl --silent --output /dev/null --show-error --fail http://example.com
要抑制所有输出:
curl --silent --output nul http://example.com
要抑制输出但在出现错误时仍显示错误,请执行以下操作:
curl --silent --output nul --show-error --fail http://example.com
-沉默
抑制正在下载的统计数据(但仍将显示超文本标记语言输出)-输出 /dev/null
隐藏成功的输出-show-错误
显示错误,即使沉默
模式如果HTTP响应是错误代码(404、500等),而不仅仅是DNS/TCP错误,则启用-失败
将引发错误。
更新:我意识到原始作者想要检查请求的标题和响应代码,而不是沉默一切。有关如何做到这一点的详细信息,请参阅samael的回答。
当您想显示标题但隐藏响应正文时,您将需要使用:
curl -sIXGET http://somedomain.com/your/url
我一直在使用curl-Ihttp://somedomain.com/your/url
仅用于显示响应标题。但问题是,它使用HEAD
方法发出请求,当您想要测试只响应GET
请求的API调用时,这种方法是不好的。这就是-xget
的作用,它将请求更改为GET
。
因此,概括地说:
-s
从输出中隐藏进度条(在管道传输到另一个程序时特别有用)-I
显示标题(但发出标题
请求)-XGET
将请求转换回获取
请求
见:http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/