可以使用HTTP HEAD只请求报头,如curl(1)中的选项-I。
$ curl -I /
在命令行中获取冗长的HTML响应体是一件痛苦的事情,因此我希望只获得POST请求的报头作为反馈。但是,HEAD和POST是两种不同的方法。
如何让cURL只显示POST请求的响应头?
可以使用HTTP HEAD只请求报头,如curl(1)中的选项-I。
$ curl -I /
在命令行中获取冗长的HTML响应体是一件痛苦的事情,因此我希望只获得POST请求的报头作为反馈。但是,HEAD和POST是两种不同的方法。
如何让cURL只显示POST请求的响应头?
当前回答
对于长响应体(以及各种其他类似的情况),我使用的解决方案总是将管道输送到更少的地方,因此
curl -i https://api.github.com/users | less
or
curl -s -D - https://api.github.com/users | less
会完成任务的。
其他回答
headcurl。CMD (windows版本)
curl -sSkv -o NUL %* 2>&1
我不想要进度条-s, 但我想要误差-S, 不用担心有效的HTTPS证书-k, 获取高冗余-v(这是关于故障排除的,对吗?), 没有输出(干净的方式)。 哦,我想转发stderr到stdout,所以我可以grep反对整个事情(因为大多数或所有输出都来自stderr) %*表示[将所有参数传递给这个脚本](嗯(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'
也许这有点极端,但我用的是这个超短的版本:
curl -svo. <URL>
解释:
打印调试信息(包含头文件)
- o。将网页数据(我们想要忽略)发送到某个文件。在本例中,它是一个目录,是一个无效的目的地,并使输出被忽略。
-s没有进度条,没有错误信息(否则你会看到Warning: Failed to create the file .: Is a directory)
警告:结果总是失败(就错误代码而言,无论是否可达)。不要在shell脚本中使用条件语句…
下面的命令显示额外的信息
curl -X POST http://httpbin.org/post -v > /dev/null
你可以要求服务器只发送HEAD,而不是完整的响应
curl -X HEAD -I http://httpbin.org/
注意:在某些情况下,服务器可能会为POST和HEAD发送不同的报头。但在几乎所有情况下,头都是相同的。
对于长响应体(以及各种其他类似的情况),我使用的解决方案总是将管道输送到更少的地方,因此
curl -i https://api.github.com/users | less
or
curl -s -D - https://api.github.com/users | less
会完成任务的。
虽然其他答案在所有情况下都不适合我,但我能找到的最佳解决方案(也可以使用POST),从这里开始:
Curl -vs 'https://some-site.com' 1> /dev/null