自动https请求的最简单方法



我需要自动向基于云的数据库接口(Intelex)提交大量请求。没有任何方法可以批量提交某些操作,但是提交单个请求所需要做的就是让经过身份验证的用户尝试打开web链接。因此,要恢复具有给定GUID的记录,我所需要做的就是打开页面"https://.../restore/[GUID]"。网页将加载并显示已恢复的记录,但实际上我甚至不需要它完成加载—只需请求页面就足以让服务器执行该操作。如果我发送得太快,我希望服务器要么把我踢出去,要么放弃一些请求,但是处理它们的速度和我在新的浏览器选项卡中导航和打开链接的速度一样快(大约每秒1次)。

提交这几千个网址的请求最简单的方法是什么?

我可以在这里看到几种方法。每个都很简单。

  1. 将URL的变量部分存储在文件中。然后使用CURL之类的工具,使用在每次迭代中构建的URL调用CURL遍历文件内容。如果你使用的是Linux,你可以在Bash中循环遍历文件的内容,对于Windows,请查看这篇文章:如何使用Windows批处理文件循环遍历文本文件中的每一行?

  2. 使用JMeter工具(JMeter循环遍历CSV中的所有值)。这甚至可以让你并行化你的查询。

假设guid.txt包含:

[GUID]
[GUID]
[GUID]
:
[GUID]

然后可以运行:

cat guid.txt | parallel --delay 1s wget https://.../restore/{}

自动找到最佳--delay使用:

cat guid.txt |
parallel --retries 5 --delay 1sauto wget https://.../restore/{}

(需要GNU Parallel版本20210122)。

最新更新