17

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

我正在使用curl. 我想用一个 CURL 命令来做这三件事:

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

我可以使用多个curl请求来做到这一点,但我想尽量减少访问 Snapito 服务器的次数。curl有高手吗?

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

谢谢!

4

2 回答 2

23

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

于 2012-08-06T21:39:05.370 回答
10

使用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)
于 2012-08-06T21:40:24.043 回答