【发布时间】:2010-09-22 04:00:16
【问题描述】:
我只想从 curl 请求中获取标头
curl -I www.google.com
一切都好。现在我想这样做,但也要传递帖子数据:
curl -I -d'test=test' www.google.com
但我得到的只是:
Warning: You can only select one HTTP request!
有人知道如何做到这一点,还是我在做一些愚蠢的事情?
【问题讨论】:
标签: curl
我只想从 curl 请求中获取标头
curl -I www.google.com
一切都好。现在我想这样做,但也要传递帖子数据:
curl -I -d'test=test' www.google.com
但我得到的只是:
Warning: You can only select one HTTP request!
有人知道如何做到这一点,还是我在做一些愚蠢的事情?
【问题讨论】:
标签: curl
-I 选项告诉 curl 执行 HEAD 请求,而 -d'test=test' 选项告诉 curl 执行 POST,因此您告诉 curl 执行两种不同的请求类型。
curl -s -d'test=test' -D- -o/dev/null www.google.com
或者,在 Windows 上:
curl -s -d'test=test' -D- -onul: www.google.com
这是我能找到的最简洁的方法。选项有:
-D- 将标头转储到列出的文件中,或者在传递- 时转储到标准输出,就像这样。-o/dev/null 将正文发送到列出的文件。在这里,我们丢弃了正文,因此我们只看到标题。-s静音(无进度条)【讨论】:
-o/dev/null 替换为 -o nul(在 Windows XP 中测试)。
-d 表示您正在通过POST 方法发送表单数据。 -I 表示您只是通过HEAD 查看元数据。
我都建议
/dev/null并通过-D headerfile将标题写入文件headerfile
-i 将标题包含在答案中,并跳过第一个空行中的所有内容。【讨论】:
-s 以稍微清理一下输出。
-i 正是我认为每个人都在寻找的东西。为什么其他答案更复杂?我敢肯定这里有一些细微差别。