CURL访问需要从其他页面登录的页面
我有2页:xyz.com/a
和xyz.com/b
。我只有在先xyz.com/b
登录后才能访问xyz.com/a
。如果xyz.com/b
不经过其他访问,我只是通过浏览器拒绝访问(没有重定向到登录)。在登录后xyz.com/a
,我就可以访问另一个。
我的问题是使用curl命令执行此操作。我可以成功xyz.com/a
使用curl 登录,但是尝试xyx.com/b
访问后会被拒绝。
我使用以下内容:
curl --user user:pass https://xyz.com/a #works okcurl https://xyz.com/b #doesn't work
我尝试将第二行与&一起使用,但没有用户/密码部分,但仍然无法正常工作。两个页面都使用相同的CA,所以这不是问题。有什么建议么?谢谢
回答:
该网站可能使用cookie来存储您的会话信息。当你跑步
curl --user user:pass https://xyz.com/a #works okcurl https://xyz.com/b #doesn't work
curl
在两个单独的会话中运行两次。因此,当第二条命令运行时,由第一条命令设置的cookie不可用。就像您a
在一个浏览器会话中登录到页面,然后尝试在另一个浏览器会话中访问页面b
一样。
您需要做的是 保存 第一个命令创建的cookie:
curl --user user:pass --cookie-jar ./somefile https://xyz.com/a
然后在运行第二个命令时将它们读回:
curl --cookie ./somefile https://xyz.com/b
另外,您可以尝试使用同一命令下载两个文件,我认为它们将使用相同的cookie。
以上是 CURL访问需要从其他页面登录的页面 的全部内容, 来源链接: utcz.com/qa/409682.html