卷曲仅显示内容类型

时间:2014-05-15 10:43:24

标签: linux curl

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

我想在下载下载文件的instate之前检查内容类型是否为text / html,然后找出它是application / pdf。

我使用下面的例子,希望如果文件对我有效,它会返回文件,否则什么都不做!下面的示例只打印页面的完整内容。

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

但如果我做类似下面的例子,它仍会下载整个内容,我认为这不对...

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

非常感谢:D

2 个答案:

答案 0 :(得分:14)

选项-F适用于表单。相反,您希望通过使用选项-I发送HEAD请求,仅检索响应标题而不回复正文

显示网址​​的内容类型:

  

curl -s -I www.google.nl | grep“^ Content-Type:”

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

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

  

curl -s -H“接受:text / html”http://www.axmag.com/download/pdfurl-guide.pdf

但缺点是大多数网络服务器都会为您提供一个错误页面,该页面也包含内容类型text/html。因此,您仍将获得HTML文件。

答案 1 :(得分:7)

您也可以使用“-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