我需要使用curl从命令行下载一个.zip文件(我不能使用wget),该服务器具有登录身份验证和一些重定向,使用以下行:
curl -u user:pass --location-trusted --max-redirs 15 filelink.zip -o file.zip
我可以成功登录该站点,但是请求将进入无限重定向循环。
我发现真正开始下载文件的唯一方法是将curl命令分成两行,分别执行:
curl -u user:pass -c cookies.txt --location-trusted --max-redirs 15 filelink.zip -o file.zip
将进入无限重定向,然后使用:
curl -b cookies.txt --location-trusted --max-redirs 15 filelink.zip -o file.zip
(我不确定是否需要在这里使用--location-trusted
)
我也尝试这样做:
curl -u user:pass -c cookies.txt -b cookies.txt --location-trusted --max-redirs 15 filelink.zip -o file.zip
但这给了我错误:Invalid Argument: Only one auth mechanism allowed;
。
我的问题是,有没有一种方法可以将这两个命令组合为一个命令,而不是通过达到重定向限制而使第一个“失败”,然后使用保存的cookie调用第二个命令?
(--max-redirs 15
只是尽早停止请求,而不必等待curl达到默认的50重定向限制,然后再停止)