仅卷曲帖子数据和标题

问题描述 投票:0回答:3

我只想从curl请求中获取标头

curl -I www.google.com

一切都很棒。现在我想这样做,但也传递发布数据:

curl -I -d'test=test' www.google.com

但我得到的只是:

Warning: You can only select one HTTP request!

有人知道如何做到这一点还是我在做一些愚蠢的事情?

curl
3个回答
123
投票

-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
    静音(无进度条)

30
投票

-d
表示您正在通过
POST
方法发送表单数据。
-I
表示您只是通过
HEAD
查看元数据。

我建议其中之一

  • 下载到
    /dev/null
    并通过
    -D headerfile
    将标题写入文件
    headerfile
  • 使用
    -i
    在答案中包含标题并跳过第一个空行中的所有内容。

0
投票

当我将响应头保存为shell变量时,结果很糟糕,是什么原因?

''' 值=$(curl -k -s -X get www.google.com -D- -s -o/dev/null) 回显$值

value=$(curl -k -s -X get www.google.com -D- -s -o/dev/null | xargs echo) 回显$值

value=$(curl -k -s -X get www.google.com -D- -s -o/dev/null >curl.tmp;catcurl.tmp) 回显$值 '''

以上所有结果都是格式错误的,这只是整个结果的一部分。

直接使用commond,结果是正确的,如: 卷曲 -k -s -X 获取 www.google.com -D- -s -o/dev/null

问题已解决,但我认为这个结果与操作系统无关,因为任何其他命令都可以正常工作。 https://github.com/curl/curl/issues/13961

© www.soinside.com 2019 - 2024. All rights reserved.