是否有一种方法跟随重定向命令行cURL?

我知道在php脚本中:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

将遵循重定向。是否有一种方法跟随重定向命令行cURL?

328417 次浏览

使用location头标志:

# EYZ0

我也遇到过类似的问题。我在这里发布我的解决方案,因为我相信它可能会帮助到一位评论者。

对我来说,障碍是页面需要登录,然后通过javascript给我一个新的URL。以下是我必须做的:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <URL>
注意,j_usernamej_password是我的网站登录表单字段的名称。你必须打开网页的源代码,看看在你的情况下用户名字段和密码字段的“名称”是什么。 之后,我去一个html文件与java脚本,其中新的URL被嵌入。解析后,只需重新提交新的URL:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <NEWURL>

如前所述,遵循重定向你可以使用标志-L--location:

curl -L http://www.example.com

但是,如果你想限制重定向的数量,添加参数--max-redirs

--max-redirs <num>

设置允许重定向跟踪的最大数量。如果使用-L--location,则此选项 可以用来防止curl跟随“荒谬”的重定向。缺省情况下,限制 设置为50重定向。将此选项设置为-1以使其无限制。 如果多次使用此选项,则最后一个选项将被使用