欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何在 cURL 中设置超时 有大用 有大大用

cURL 是一个优秀的网络通信工具,它表示 "client URL"。实际上,每个设备都使用 cURL 连接到 Internet 网络。cURL最广泛的用途是从终端上,下载远程服务器上的文件。

在最开始的阶段,连接服务器进行任何通信都需要等待响应,(响应)延迟是由多种原因造成的,比如服务器负载,网络带宽,延迟,抖动等。

如果延迟等待的时间比较长,则可以设定“超时”等待的时间。

实现这一功能的最好方法,是使用 --connect-timeout 选项。

    curl --connect-timeout <duration> <URL>

    你可以设置秒(比如5秒),毫秒(比如0.001),或者秒与毫秒的组合(比如5.01),来作为超时时间。curl 将使用该事件作为等待响应的最长时间,到时间后就会断开连接。

    我们来详细了解下关于设置 cURL 的最长超时时间问题。


    使用 --connect-timeout 选项

    cURL 有一个可选参数 '--connect-timeout',可以用来设置以秒为单位的等待时间。如果 cURL 在7.32.0或更高版本,还支持将等待时间设置为十进制的数值。

    你设置的值将被作为连接远程服务器的最长等待时间。

    看下面的例子:

      curl --connect-timeout 4.2 https://linuxhandbook.com

      (上述命令中)使用的 '4.2' 和 ‘--connect-timeout' 表示 cURL 将尝试连接 'linuxhandbook.com',如果(等待时间)超过4.2秒,就会终止连接。


      一个替代方案, '--max-time' 选项

      在批处理中执行多个操作时,可使用 '--max-time' 选项。该选项将设置整个操作的持续时间,例如下载一个大文件。如果操作(比如下载文件)等待的时间超过指定的时间,它将会终止操作。

        $ curl --max-time 20 https://github.com/aristocratos/btop/releases/download/v1.2.3/btop-aarch64-linux-musl.tbz


        上面这个例子是要下载一个文件,当“连接到服务器”+“下载文件的时间”的总时间超过此处指定的 20 秒时,下载将会被终止。

        如果文件不会太大,下载时间不超过20秒,那么该命令将会成功执行。


        本文介绍了在连接远程服务器或者执行网络操作的时候,如何设置最大持续(超时)时间。如果有兴趣了解更多关于 cURL 的信息,可查看我们的另一篇文章:在Linux中怎样使用 curl 命令?通过实例来学习一下


        来自 https://www.modb.pro/db/433061


        普通分类: