Gil*_*not 97
您可以使用-o
开关和null
伪文件:
curl -s -o /dev/null -v http://google.com
Run Code Online (Sandbox Code Playgroud)
curl -s -o nul -v http://google.com
Run Code Online (Sandbox Code Playgroud)
Sim*_*ast 27
这是一种抑制所有curl输出和标题的方法,如果出现错误,仍然可以选择显示错误.适用于cron作业或自动化测试.
要抑制所有输出:
curl --silent --output /dev/null http://example.com
Run Code Online (Sandbox Code Playgroud)
要抑制输出,但如果出现错误仍显示错误:
curl --silent --output /dev/null --show-error --fail http://example.com
Run Code Online (Sandbox Code Playgroud)
要抑制所有输出:
curl --silent --output nul http://example.com
Run Code Online (Sandbox Code Playgroud)
要抑制输出,但如果出现错误仍显示错误:
curl --silent --output nul --show-error --fail http://example.com
Run Code Online (Sandbox Code Playgroud)
--silent
抑制正在下载的状态(但仍将显示HTML输出)
--output /dev/null
隐藏成功输出
--show-error
显示错误,即使silent
启用模式
--fail
也会引发错误,如果HTTP响应是错误代码(404,500等)而不仅仅是DNS/TCP错误.
更新:我意识到原作者想要检查请求的标题和响应代码而不是静音一切.有关如何执行此操作的详细信息,请参阅samael的答案.
sam*_*ael 18
如果要显示标题但隐藏响应正文,则需要使用:
curl -sIXGET http://somedomain.com/your/url
Run Code Online (Sandbox Code Playgroud)
我一直在curl -I http://somedomain.com/your/url
用于显示响应标头.但问题在于,当您想要测试仅响应请求的API调用时,它会使用不合适的HEAD
方法发出GET
请求.这就是-X GET
它的用途,它将请求更改为a GET
.
所以,总结一下:
-s
隐藏输出中的进度条(当管道连接到另一个程序时特别有用)
-I
显示标题(但发出HEAD
请求)
-XGET
将请求转换回GET
请求
请参阅:http://www.woolie.co.uk/article/curl-full-get-request-dropping-body/
只需提出一个 HEAD 请求。您将获得没有正文的标题。符合标准的服务器应该在这里发送与 GET 请求完全相同的信息。
curl --head <url>
Run Code Online (Sandbox Code Playgroud)
如果 HEAD 请求由于某种原因对您不起作用,以下内容将使 cURL 发出GET
请求,然后打印响应代码和标头,并在不接收响应正文的情况下断开连接 - 与其他接收然后丢弃它的答案不同。这可以节省大量的时间和带宽,尤其是在主体非常大的情况下。
curl --head -X GET <url>
Run Code Online (Sandbox Code Playgroud)
您可以POST
通过将任何其他动词(例如)提供给-X
选项而不是GET
.