linux – CURL用于访问需要从其他页面登录的页面

我有2页:xyz.com/a和xyz.com/b.当且仅当我首先登录xyz.com/a时,我才能访问xyz.com/b.如果访问xyz.com/b而不通过另一个,我只是通过浏览器拒绝访问(没有重定向登录).一旦我登录xyz.com/a,我就可以访问另一个了.

我的问题是使用curl命令执行此操作.我可以使用curl成功登录xyz.com/a,但是然后尝试xyx.com/b并且我被拒绝访问.

我使用以下内容

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

我已尝试使用第二行&没有用户/密码部分仍然无法正常工作.两个页面都使用相同的CA,因此这不是问题.有什么建议?谢谢

解决方法:

该网站可能使用cookies来存储您的会话信息.当你跑步

curl --user user:pass https://xyz.com/a  #works ok
curl 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.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...