使用CURL下载文件并查看标题和状态代码

cur*_*sdf 15 bash curl

我正在编写一个Bash脚本来从Snapito的网页快照API 下载图像文件.API可以返回由不同HTTP响应代码和/或一些自定义标头指示的各种响应.我的脚本旨在作为自动Cron作业运行,从MySQL数据库中提取URL并将屏幕截图保存到本地磁盘.

我在用curl.我想使用单个CURL命令执行以下三项操作:

  1. 提取HTTP响应代码
  2. 提取标题
  3. 在本地保存文件(如果请求成功)

我可以使用多个curl请求执行此操作,但我希望最小化我点击Snapito服务器的次数.任何curl专家在那里?

或者如果某人有一个Bash脚本可以响应完整记录的Snapito API响应集,那就太棒了.这是他们的API文档.

谢谢!

小智 21

使用dump headers选项: curl -D /tmp/headers.txt http://server.com

  • 没错.我忽略了`-D`选项.这就是我现在正在使用的:`curl -s -L -D/dev/stdout -o $ IMAGE_FILE $ SNAPITO_URL`谢谢! (5认同)

Guy*_*ini 9

使用curl -i(包括HTTP标头) - 将生成标题,后跟空行,后跟内容.

然后,您可以拆分标题/内容(或使用-D直接保存到文件,如上所述).


有三个选项-i,-I-D

> curl --help | egrep '^ +\-[iID]'
 -D, --dump-header FILE  Write the headers to FILE
 -I, --head          Show document info only
 -i, --include       Include protocol headers in the output (H/F)
Run Code Online (Sandbox Code Playgroud)

  • 我想你在考虑`-I`选项,而不是`-i`. (2认同)