提问者:小点点

卷曲抑制反应体


是否可以指示cURL抑制响应体的输出?

在我的例子中,响应主体是一个HTML页面,它会溢出CLI缓冲区,因此很难找到相关信息。我想检查输出的其他部分,比如HTTP响应代码、头文件、e.t.c.-除了实际的HTML之外的所有内容。


共3个答案

匿名用户

您可以使用-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/