Bash 使用CURL下载文件并查看标题和状态代码
我正在编写一个Bash脚本,用于从的网页快照API下载图像文件。API可以返回由不同HTTP响应代码和/或某些自定义头指示的各种响应。我的脚本打算作为自动Cron作业运行,从MySQL数据库中提取URL,并将屏幕截图保存到本地磁盘 我正在使用Bash 使用CURL下载文件并查看标题和状态代码,bash,curl,Bash,Curl,我正在编写一个Bash脚本,用于从的网页快照API下载图像文件。API可以返回由不同HTTP响应代码和/或某些自定义头指示的各种响应。我的脚本打算作为自动Cron作业运行,从MySQL数据库中提取URL,并将屏幕截图保存到本地磁盘 我正在使用curl。我想使用一个CURL命令完成以下三件事: 提取HTTP响应代码 提取标题 在本地保存文件(如果请求成功) 我可以使用多个curl请求来实现这一点,但我希望尽量减少我访问Snapito服务器的次数。有没有curl专家 或者,如果有人有一个Bash脚本
curl
。我想使用一个CURL命令完成以下三件事:
curl
请求来实现这一点,但我希望尽量减少我访问Snapito服务器的次数。有没有curl
专家
或者,如果有人有一个Bash脚本可以响应完整的snapitoapi响应文档集,那就太棒了。给你
谢谢 使用转储标题选项:
curl-D/tmp/headers.txthttp://server.com
使用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)
您可以解析输出,但我想这在python/ruby/php/中更容易……啊,是的。我忽略了
-D
选项。下面是我现在使用的:curl-s-L-D/dev/stdout-o$IMAGE\u FILE$SNAPITO\u URL
谢谢curl-s-L-D--o$IMAGE\u FILE$SNAPITO\u URL
我想你想的是-I
选项,而不是-I
。不-我只是标题,-我是标题+内容。我明白了,你是对的。但是,使用-i
会给我带来另一个问题:解析输出以将标题从二进制图像数据中分离出来。我让它与路由到stdout的-D
选项(并由$()
包装器捕获)和保存文件的-o
选项配合使用。谢谢你!下次我会记得查看-I
。