cURL 命令行保持连接打开

col*_*mde 9 curl http

有没有办法让curl(命令行工具)保持http连接打开?我正在尝试测试/调试一个服务器应用程序,该应用程序有一个客户端打开http连接,发出PUT请求并将其保持打开状态直到采取进一步的操作,并且一直在尝试使用curl来模拟这一点。

然而,根据curl网站的说法:

然而,curl 命令行工具只能在运行期间保持连接处于活动状态,因此一旦它退出回命令行,它就必须关闭所有当前打开的连接。

这很好,但是有没有办法强制它不退出回命令行(直到我按任意键或 Ctrl-C 或它喜欢的任何键),从而在我进行测试时保持连接打开?

我已经尝试过"Connection: keep-alive"标头,但这并不能解决问题,该过程仍然会在发出请求后立即结束,并且连接会关闭。

如果没有,是否有替代工具可以做到这一点?

Dan*_*erg 20

您可以“欺骗”curl 以保持连接打开。例如这样:

  1. 启动nc监听本地端口,例如 8080(nc -l -p 8080在某些版本的 nc 上)
  2. 运行curl以获取所需的资源,然后在同一命令行上添加“localhost:8080”作为第二个URL

这将使curl在获取第二个URL时将第一个连接保留在其池中,并且您使第二次传输“无限期”挂起,这将使curl仅保持第一个连接打开并处于活动状态,直到您control-c该连接或您的nc过程。