【问题标题】:Curl show Content-Type only仅卷曲显示 Content-Type
【发布时间】:2014-07-03 18:24:00
【问题描述】:

我想知道是否可以使用 curl 仅显示响应标头的内容类型。

我想在下载文件之前检查内容类型是否为文本/html,然后找出它是应用程序/pdf。

我使用下面的示例希望它会返回对我有效的文档,否则什么也不做!下面的示例仅打印页面的全部内容。

curl -F "type=text/html" www.google.nl

但如果我执行下面示例中的操作,它仍然会下载整个内容,我认为这是不对的...

curl -F "type=text/html" http://www.axmag.com/download/pdfurl-guide.pdf

非常感谢:D

【问题讨论】:

    标签: linux curl


    【解决方案1】:

    选项-F 用于表单。相反,您想发送一个HEAD 请求,通过使用选项-I 仅检索响应header 而没有响应body

    显示 URL 的内容类型:

    curl -s -I www.google.nl | grep -i "^Content-Type:"

    此处为静音模式添加了选项-s,以排除进度表和错误消息。

    您还可以在 HTTP 请求中指定 Accept 标头。此标头仅用于接受特定的内容类型:

    curl -s -H "Accept: text/html" http://www.axmag.com/download/pdfurl-guide.pdf

    但缺点是大多数网络服务器会为您提供内容类型为text/html 的错误页面。因此,您仍然会得到一个 HTML 文件。

    【讨论】:

      【解决方案2】:

      您也可以使用“-w”选项和“content-type”参数:

      curl -s -o /dev/null -w '%{content_type}' 'google.com'
      

      地点:

      -s:静音模式,不再发送到屏幕

      -o: 输出到文件,在这种情况下,发送到 /dev/null

      -w:只显示你想要的,在这种情况下,内容类型

      参考:https://curl.haxx.se/docs/manpage.html

      【讨论】:

        猜你喜欢
        • 2010-12-17
        • 2015-08-14
        • 1970-01-01
        • 1970-01-01
        • 2020-04-21
        • 2022-06-30
        • 2017-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多