背景:
页面上有导出功能,但做了数目限制,如果把条件拆细,再去做导出,不是不行,只是这样的话,很耗费人力。
所以通过写个脚本,通过遍历参数的方式,调用导出接口,并把文件放到指定路径下。
以下例子,参数是 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 "输出完毕"
标签:语句,01,--,precinctId,参数,curl,下载
From: https://www.cnblogs.com/aaacarrot/p/18397649