使用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