Answers:
-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.
和
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
和
-L/--location
(HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response
code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested
pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different
host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to
follow by using the --max-redirs option.
When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP
response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified
method.
从手册页。所以
curl -sSL -D - www.acooke.org -o /dev/null
跟随重定向,将标头转储到stdout并将数据发送到/ dev / null(这是GET,而不是POST,但是您可以对POST执行相同的操作-只需添加已经用于发布数据的任何选项)
请注意-
后面的-D
,它指示输出“文件”为stdout。
-D
一个参数,指出输出应该去哪里。单破折号表示应该转到标准输出。
其他答案需要下载响应正文。但是有一种方法可以发出一个仅获取标头的POST请求:
curl -s -I -X POST http://www.google.com
一个-I
由自身执行HEAD请求可以通过重写-X POST
来执行POST(或任何其他)请求,仍然只能得到标题数据。
GET
请求,并且没有下载整个响应主体(或者至少没有输出它)。该-s
标志也不是必需的。
GET
为POST
,它将按预期运行。or any other
是关键。
POST
一些数据时,这将不起作用。卷毛说:Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
-X HEAD
这里没有可靠的解决方案。
以下命令显示其他信息
curl -X POST http://httpbin.org/post -v > /dev/null
您可以要求服务器仅发送HEAD,而不发送完整响应
curl -X HEAD -I http://httpbin.org/
Note:
在某些情况下,服务器可能会为post和HEAD发送不同的标头。但是在几乎所有情况下,标题都是相同的。
-X HEAD
并且-I
是完全等价的。
-X HEAD
在于服务器可能会以不同的方式响应,因为它现在接收到的是HEAD
请求(而不是GET
先前的请求)(而不是以前的请求)
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the Warning: way you want. Consider using -I/--head instead.
也许这有点极端,但是我使用的是这个超短版本:
curl -svo. <URL>
说明:
-v
打印调试信息(确实包含标题)
-o.
将网页数据(我们要忽略的数据)发送到某个文件,.
在这种情况下,该文件是目录,并且是无效的目标,并导致输出被忽略。
-s
没有进度条,没有错误信息(否则您将看到Warning: Failed to create the file .: Is a directory
)
警告:结果总是失败(就错误代码而言,无论是否可达)。请勿在shell脚本中使用条件语句...
-o.
代替-o /dev/null
?
-o.
是-o /dev/null
为了简洁起见
curl -svo. <url> && echo foo
因此不会打印:。foo
-o.
curl
curl: (23) Failed writing body
headcurl.cmd(Windows版本)
curl -sSkv -o NUL %* 2>&1
-s
,-S
,-k
,-v
(这是有关故障排除的,对吗?),%*
表示[将所有参数传递给此脚本](好(https://stackoverflow.com/a/980372/444255),通常这只是一个参数:您正在测试的url实际示例(有关代理问题的故障排除):
C:\depot>headcurl google.ch | grep -i -e http -e cache
Hostname was NOT found in DNS cache
GET HTTP://google.ch/ HTTP/1.1
HTTP/1.1 301 Moved Permanently
Location: http://www.google.ch/
Cache-Control: public, max-age=2592000
X-Cache: HIT from company.somewhere.ch
X-Cache-Lookup: HIT from company.somewhere.ch:1234
Linux版本
为您的.bash_aliases
/ .bash_rc
:
alias headcurl='curl -sSkv -o /dev/null $@ 2>&1'
-X POST
到passthrough参数中;如果需要GET,请使用GET(即默认值),因为响应可能会有所不同。-除非您在生产脚本中进行严重卷曲(不用于诊断和开发),否则我不会在乎带宽。
curl -s -D - http://yahoo.com -o nul