我正在尝试编写一个 BASH 命令,该命令使用 CURL 向两个不同的网页发送 GET 请求,但使用相同的连接。对我来说,这就像向登录页面发送一个 GET 请求以对服务器进行身份验证,然后第二个请求模仿在 Web 浏览器中发生的自动重定向到主页(通过元刷新标签)。我需要链接请求,因为来宾用户的主页内容(由服务器生成)与经过身份验证的用户不同。
我首先根据SOF 帖子的建议尝试了这个命令(假设变量已经$IP
用$PORT
有效值定义):
curl -u user:pass ${IP}:${PORT}/login.php && curl ${IP}:${PORT}/index.php
但是,我总是在第一个 GET 结束和第二个 GET 开始之间发生这样的事情:
* Connection #0 to host 10.0.3.153 left intact
* Closing connection #0
那么 SOF 的帖子错了吗?无论如何,执行此命令将成功保持两个请求之间的连接打开:
curl -u user:pass ${IP}:${PORT}/login.php ${IP}:${PORT}/index.php
但是,我真的更喜欢更接近前一个命令的解决方案而不是后一个命令。主要原因是将第一页与第二页的输出分开到两个不同的输出文件中。所以我想做类似的事情:
curl page1.html > output1 && curl page2.html > output2
当然,我需要重用相同的连接,因为 page2.html 的内容取决于我也在同一个 HTTP 会话中对 page1.html 发出请求。
我也对使用 netcat 或 wget 的解决方案持开放态度,但不是 PHP!