首页 > 解决方案 > 在 url 中增加一个数字以使用 curl 同时发出请求

问题描述

这是我当前的 curl 请求。我试图弄清楚如何将“详细信息”值增加 1(因此下一个请求将是 0000002 等等)。我希望它循环遍历 1000 个值,然后将对每个请求的响应输出到文本文件。任何帮助将不胜感激!

curl "https://webapi.xxx.com/api/getthisdetails?details=0000001" -H "用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0" -H "接受: application/json, text/javascript, / ; q=0.01" -H "接受语言: en-US,en;q=0.5" -H "内容类型: application/x-www-form -urlencoded; charset=UTF-8" -H"授权:承载xxxxxxxxxxxxxxxxx" -H"来源:https://www.xxxxxx.com" -H"连接:keep-alive" -H"引用者:https:// www.xxxxxxx.com/" -H "Pragma: no-cache" -H "Cache-Control: no-cache"

标签: curl

解决方案


curl 可以自行迭代它们。通过避免 shell 循环,您将让 curl 重用连接:

curl "https://webapi.xxx.com/api/getthisdetails?details=[0000001-0001000]"  -o file_#1 [the other headers]

并不是输出#1中的-o将使用括号内的完整数字,从 0000001 开始。

平行

上面的命令行将以串行的方式执行所有请求,一个接一个。如果您想改为并行执行它们,请添加--parallel到命令行,curl 将同时执行多达 50 个(默认情况下,可以更改)传输。

--parallel 添加到 curl 7.66.0


推荐阅读