我正在尝试编写一个BASH命令,该命令使用CURL将GET请求发送到两个不同的网页,但使用相同的连接.对我来说,就像向登录页面发送GET请求以向服务器进行身份验证,然后第二个请求模仿自动重定向到主页,这将发生在Web浏览器中(通过元刷新标记).我需要链接请求,因为主页的内容(由服务器生成)对于访客用户而言不同于经过身份验证的用户.
我首先根据SOF post的推荐尝试了这个命令(假设变量$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!