我正在尝试使用以下命令从 cURL 命令行登录
curl --data "用户名=用户&密码=密码&提交=登录"http://www.ip.com:8080/LoginApplication/Login.jsp
之后尝试使用访问内页
curl http://www.ip.com:8080/LoginApplication/Success.jsp
但由于未登录,我被重定向到错误页面。
我在第一个命令中缺少什么以便它可以维持会话?我的网站在本地托管
答案1
那么,您需要将会话数据存储在 cookie 中。您可以使用-c cookie_filename
它来创建 cookie(将其添加到您的登录命令中)。然后,对于其他请求,您可以使用 来读取 cookie -b cookie_filename
。
在示例中:
curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile
编辑:
请注意,很多时候,loginpage
您使用网络浏览器打开的页面并不是在其中输入用户名和密码的。您必须检查表单将该数据发布到的位置(<form>
在源代码和action=...
属性中搜索标签)。因此,举例来说,如果您想登录https://criticker.com,loginpage
是https://www.criticker.com/authenticate.php并不是https://www.criticker.com/signin.php,这是您用浏览器打开的。
loginpage
浏览器的篡改插件/扩展程序可能会帮助您找到发布到浏览器的正确数据和所有数据(例如表单中的隐藏输入字段)。