【问题标题】:Curl suppress output when supplying header提供标头时卷曲抑制输出
【发布时间】:2020-03-20 19:50:22
【问题描述】:

这会抑制输出,只输出状态:

curl --write-out '%{http_code}' --silent --output /dev/null --noproxy '*' http://www.google.com/

添加标头会打印整个响应:

curl --write-out '%{http_code}' --silent --output /dev/null --noproxy '*' --header ''"'"'Host:' '192.168.0.1:2345'"'" http://www.google.com/

如何在注入标头时停止输出打印到标准输出?

【问题讨论】:

    标签: bash shell curl


    【解决方案1】:

    让我们仔细看看你的命令。下面的调用会将每个单独的参数写在一个新行中。

    $ printf '%q\n' curl --write-out '%{http_code}' --silent --output /dev/null --noproxy '*' --header ''"'"'Host:' '192.168.0.1:2345'"'" http://www.google.com/
    curl
    --write-out
    %\{http_code\}
    --silent
    --output
    /dev/null
    --noproxy
    \*
    --header
    \'Host:
    192.168.0.1:2345\'
    http://www.google.com/
    

    Bingo,虽然 Host: 192.168.0.1:2345 必须是单个参数,但您将它作为两个单独的参数提供给 curl,因此它首先尝试获取 192.168.0.1:2345'。由于--output 仅应用于一个 URL,因此会打印来自http://www.google.com/ 的响应。

    这样做,它会工作。

    curl --write-out '%{http_code}\n' --silent --output /dev/null --noproxy '*' --header 'Host: 192.168.0.1:2345' http://www.google.com/
    

    【讨论】:

    • 谢谢。进行了一些时髦的转义,并且在从日志中复制和粘贴时没有注意到它。有一些丑陋的偏移切片正在修复它
    猜你喜欢
    • 2015-02-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多