卷曲仅显示内容类型

bob*_*ann 8 linux curl

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

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

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

curl -F "type=text/html" www.google.nl
Run Code Online (Sandbox Code Playgroud)

但是,如果我做类似下面的例子,它仍然下载整个事情,我不认为这是正确的...

curl -F "type=text/html" http://www.axmag.com/download/pdfurl-guide.pdf
Run Code Online (Sandbox Code Playgroud)

非常感谢:D

sca*_*cai 15

选项-F适用于表格.相反,您希望通过使用选项发送HEAD仅检索响应标头而没有响应主体的请求-I.

要显示URL的内容类型:

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

此处curl -s -I www.google.nl | grep "^Content-Type:"为静默模式添加了选项,用于排除进度表和错误消息.

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

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

但缺点是大多数Web服务器都会为您提供一个错误页面,该页面也具有内容类型Accept.因此,您仍将获得HTML文件.


小智 7

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

curl -s -o /dev/null -w '%{content_type}' 'google.com'
Run Code Online (Sandbox Code Playgroud)

哪里:

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

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

-w:只显示您想要的内容,在本例中为内容类型

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