如何独立于操作系统并行运行从文件动态设置参数的 CURL POST 命令?

如何独立于操作系统并行运行从文件动态设置参数的 CURL POST 命令?

我想使用 CURL 提交数百个 HTTP 请求,最好是并行提交。此请求只需向服务器提交一个值。我如何才能独立于操作系统做到这一点?我开始编写一个。TXT文件有很多行,如下所示:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" url = http://localhost:8080/sales?salesAmount=111.91

仅数量会有所不同。

也许更好:该文件每行只包含一个金额,CURL 命令循环遍历该文件,并将每行读取为要插入到 CURL 命令中的参数!?类似于:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" --data "salesAmount={???} http://localhost:8080/sales

其中{???}应填充从.txt文件中读取的值。

答案1

目前 curl 不支持并行传输,但这种情况将在 6 天后发生变化。2019 年 9 月 11 日,curl 版本 7.66.0 将发布,该版本支持全新的--parallel参数,用于并行发送请求。

如果你的 curl 版本 >= 7.66.0,你可以这样做

curl --parallel $(cat list.txt)

如果没有,那么您可以使用 xargs 达到同样的效果:

cat list.txt | xargs --max-procs=50 curl

至于可移植性,大多数现代 unix 系统 (Linux/MacOS/*BSD/Illumos) 默认附带 cat 和 xargs,但 Windows 没有(但它们可以通过以下方式安装在 Windows 上赛格威或者西弗吉尼亚海岸

相关内容