Answers:
您可以使用-o
switch和null
伪文件:
curl -s -o /dev/null -v http://google.com
curl -s -o nul -v http://google.com
-s -o nul
但是在我的Windows机器 curl -s -o nul -v http://{internal-host}/{internal-uri}
输出页面的整个html上,我尝试了curl -s -o nul -v http://google.com
并且确实抑制了预期的输出,所以我不明白为什么这对我的内部网站不起作用
-o
仅指定一个网址输出:如果您有多个网址,则只会丢弃第一个:(
这是一种抑制所有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
--silent
禁止进行中的下载状态(但仍显示HTML输出)
--output /dev/null
隐藏成功的输出
--show-error
显示错误,即使silent
启用了模式
--fail
也会导致错误(如果HTTP响应是错误代码(404、500等),而不仅仅是DNS /) TCP错误。
更新:我意识到原始作者想要检查请求的标头和响应代码,而不是使所有内容保持沉默。有关如何执行此操作的详细信息,请参见samael的答案。
curl -vo/dev/null
/ curl -voNUL
…,但我不知道是否存在可移植的变体,hrm…;-)。
curl -Ssfo /dev/null url
。但是对未来的维护者要好。
当您想要显示标题但隐藏响应正文时,您将要使用:
curl -sIXGET http://somedomain.com/your/url
我一直curl -I http://somedomain.com/your/url
只用于显示响应头。这样做的问题是,它使用HEAD
一种方法来发出请求,当您要测试仅响应GET
请求的API调用时,这种方法就不好了。这就是-X GET
它的用途,它将请求更改为GET
。
因此,总而言之:
-s
隐藏输出中的进度条(在管道传输到另一个程序时特别有用)
-I
显示标头(但发出HEAD
请求)
-XGET
将请求转换回GET
请求
参见:http : //www.woolie.co.uk/article/curl-full-get-request-dropping-body/
curl -i
做完全一样的事情。
-i
在输出以及正文中都包含HTTP标头。试试吧。curl -i http://google.com
与curl -IXGET http://google.com
curl -I url
就足够了,并且效果相同。我只需要检查网址是否响应。这个问题也仅仅是抑制身体,这HEAD
很好。