使用curl从HTTP POST获取响应头

可以只使用HTTP HEAD请求标题,作为curl(1)选项-I

 $ curl -I / 

冗长的HTML响应主体是一个痛苦的命令行,所以我想只获得我的POST请求的反馈头。 但是,HEAD和POST是两种不同的方法。

我如何得到curl只显示POST请求的响应头?

 -D, --dump-header <file> Write the protocol headers to the specified file. This option is handy to use when you want to store the headers that a HTTP site sends to you. Cookies from the headers could then be read in a second curl invocation by using the -b, --cookie option! The -c, --cookie-jar option is however a better way to store cookies. 

从手册页。 所以

 curl -s -D - www.acooke.org -o /dev/null 

将标题转储到标准输出并将数据发送到/ dev / null(这是一个GET,而不是一个POST,但是你可以用一个POST做同样的事情 – 只需要添加你已经用来发送数据的选项)

注意--D ,表示输出“file”是stdout。

其他答案需要下载响应主体。 但是有一种方法可以创buildPOST请求,只能获取头文件:

 curl -s -I -X POST http://www.google.com 

-I本身执行一个HEAD请求,可以被-X POST覆盖来执行一个POST(或者其他任何)请求,并且只能得到头部数据。

对于长时间的回应机构(以及其他各种类似的情况),我所使用的解决scheme总是要less ,所以

 curl -i https://api.github.com/users | less 

要么

 curl -s -D - https://api.github.com/users | less 

会做这项工作。

更简单和更简单的方法是使用:

 curl -X HEAD -I http://www.google.com 

订单可以改变,例如:

 curl http://www.google.com -X HEAD -I 

如果你从chrome检查器抓取curl请求,这是非常有用的。 有一段时间我只是使用

 curl http://www.google.com -vvv > /dev/null 

它显示一些额外的信息,但很容易记住。

Note:一些错误configuration/编程的Web服务器可能会响应不同的post,因为它是HEAD请求而不是POST。 但大部分时间都在工作

更容易 – 这是我用来避免短链接跟踪 – 是以下内容:

 curl -IL http://bit.ly/in-the-shadows 

…也链接

虽然其他答案在所有情况下都不适用于我,但我可以从以下方面find最佳解决scheme(使用POST ):

curl -vs 'https://some-site.com' 1> /dev/null