我想知道是否可以使用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
答案 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:只显示您想要的内容,在本例中为内容类型