Table of Contents
背景
很多web页面F12抓包导出接口到curl bash脚本进行循环调用时,需要给post请求时的payload传入可变参数,遇到了一些坑,在此记录下。
curl发送post请求时payload带参数引用
正常的curl请求,payload是json格式,所以我们在拼接的时候要按照这个格式。
例如,原始payload如下,
{"taskName":"deploy-task-1712447852127"}
未使用参数引擎的完整请求命令如下,
curl 'http://xx.xx/xx/xx' -d '{"taskName":"deploy-task-1712447852127"}'
如果payload的时间戳会自动变化,就需要拼接payload,完整的请求命令如下,
ts=$(date +%s)000
curl 'http://xx.xx/xx/xx' -d "{\"taskName\":\"deploy-task-${ts}\"}"
注意:
1、整个payload要用双引号括起来;
2、payload里的其他特殊字符使用\进行转义,如果需要批量转义payload里的双引号,可以使用如下脚本,
sed -r -e 's/"/\\"/g' f.txt