【问题标题】:Easiest way to automate https requests自动化 https 请求的最简单方法
【发布时间】:2021-02-06 23:57:32
【问题描述】:

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

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

【问题讨论】:

    标签: https automation


    【解决方案1】:

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

    1. 将 URL 的可变部分存储在文件中。然后使用 CURL 之类的工具,并使用您在每次迭代中构建的 URL 循环调用 CURL 的文件内容。如果您使用的是 Linux,您可以执行 Looping through the content of a file in Bash 之类的操作,对于 Windows,请查看此帖子:How do you loop through each line in a text file using a windows batch file?

    2. 使用 JMeter 工具 (jMeter loop through all values in CSV)。这甚至可以让您并行化查询。

    【讨论】:

    • 谢谢阿列克谢!鉴于我目前的知识水平,安装 JMeter 对我来说似乎是一个重要的研究项目:“通常能够对 Stack-Exchange 中的代码进行评审”; “https 意味着 Web 服务神奇地知道我是我……或其他什么”;和“Linux 是人们更聪明地使用的东西”。我想我能得到的最好的方法是在我吃午饭时获取一个批处理文件来打开和关闭 Chrome 1000 次,将你的链接与stackoverflow.com/questions/41331970/… 结合起来你认为这是一个公平的评估吗?
    • 这是一种可能的解决方案,但会消耗更多资源,因此需要更多时间才能完成。这可能会发生,你会吃完午饭回来,但脚本仍然可以工作。
    【解决方案2】:

    假设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 并行版本 20210122)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-28
      • 2013-01-15
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多