通过curl语句下载文件

背景:

页面上有导出功能,但做了数目限制,如果把条件拆细,再去做导出,不是不行,只是这样的话,很耗费人力。
所以通过写个脚本,通过遍历参数的方式,调用导出接口,并把文件放到指定路径下。

以下例子,参数是 precinctids, 表示很多个区域,各个区域用空格隔开,
一个区域一个文件

这里要注意的一些地方:
(1)参数入参时, --date 要用双引号,当使用单引号时,它不会对参数进行解析
(2)当接口返回的数据流时,需要使用 curl -o "存在数据文件的绝对路径" ..... 这里需要带上 “-o” 这个参数,不然它也会提示。。

其它没什么需要注意的了,和普通的 curl 语句差不多。写个脚本,备用。

#!/bin/bash
# 将输入的参数(预期为空格分隔的precinctId列表)转换为bash数组
precinctIds=(01-01 01-02)
# 遍历precinctId数组
for precinctId in "${precinctIds[@]}"; do
# 构建输出文件名
output_filename="/tmp/data-export/demo_${precinctId}.xlsx"
# 执行curl命令
curl -o "$output_filename" --request POST \
--url 'http://10.1.5.24:8080/v1/precincts/downLoad' \
--header 'Accept: */*' \ ## 省略了部分header
--data "{
\"precinctId\": \"${precinctId}\", ## 这里要用双引号,并用\,如果用单引号的话,参数会解析不出来。
...
}"
# 检查上一个命令的退出状态,如果不为0(表示失败),则打印错误信息
if [ $? -ne 0 ]; then
echo "Error downloading: $precinctId"
fi
done
# 所有下载完成后,打印“输出完毕”
echo "输出完毕"
posted @   aaacarrot  阅读(1090)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示