网站搜索

如何限制curl请求时间


快速失败往往比继续等待成功要好。

当涉及到发出网络请求时,时机至关重要。没有人喜欢无休止地等待网页加载或服务器响应。如果您使用curl 从网络获取数据,您会很高兴知道有一些方法可以限制请求所花费的时间。

以下是如何限制curl请求时间,以确保您保持对数据获取操作的控制。

方法 1:使用 --max-time 选项

运行curl命令时,您可以指定-m--max-time选项来对请求设置严格的时间限制。此选项允许您指定命令在退出并出现超时错误代码 (28) 之前愿意等待的最长时间(以秒为单位):

curl --max-timе [sеconds] [URL]

您可以使用小数精度定义最大值,其中 0.3 表示 300 毫秒,5.46 表示 5,460 毫秒,20 表示 20 秒。

例如:

curl -o test.md --max-time 30 https://github.com/test/file1

此命令向提供的 GitHub URL 发送请求。它将把响应数据保存为 test.md 并在最多 30 秒内完成。

方法 2:使用 --connect-timeout 选项

要控制curl尝试连接到主机所花费的时间,请使用--connect-timeout选项。这设置了curl完成连接步骤的最大时间限制,包括DNS查找和后续的TCP、TLS或QUIC握手。

如果curl无法在您指定的时间范围内建立连接,它将退出并显示超时错误代码(28):

curl --connect-timeout [seconds] [URL]

例如:

curl -o test.md --connect-time 20 https://github.com/test/file

此处,curl 命令检索 URL 中指定的文件,将其保存为 test.md,并强制与服务器建立连接的时间限制为 20 秒。

控制 Curl 请求以实现快速检索

在时间就是金钱的世界中,能够限制卷曲请求时间是一项方便的技能。无论您选择 --connect-timeout 还是 --max-time 选项,您都将负责数据获取任务。因此,不再需要无休止的等待,是时候发出高效、受控的 Web 请求了。

下次当您发现自己等待curl请求完成时,请记住这些方法并使curl按照您的方式工作。

相关文章: