有没有办法使用命令行cURL跟踪重定向?

时间:2013-08-27 20:21:23

标签: redirect curl command-line-interface

我知道在php脚本中:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

将遵循重定向。有没有办法使用命令行cURL跟踪重定向?

3 个答案:

答案 0 :(得分:644)

使用位置标题标记:

curl -L <URL>

答案 1 :(得分:23)

我有类似的问题。我在这里发布我的解决方案,因为我相信它可能有助于其中一位评论者。

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

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

请注意,j_username和j_password是我网站登录表单的字段名称。您必须打开网页的来源才能看到&#39; name&#39;用户名字段和&#39;名称&#39;在您的情况下密码字段。 之后我去了一个带有java脚本的html文件,其中嵌入了新的URL。解析完后,只需使用新URL重新提交:

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

答案 2 :(得分:4)

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

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

但是,如果要限制重定向次数,请添加参数--max-redirs

--max-redirs <num>
     

设置允许的最大重定向数量。如果使用-L--location,则此选项    可以用来防止curl在“荒谬”中遵循重定向。默认情况下,限制     设置为50重定向。将此选项设置为-1使其不受限制。     如果多次使用此选项,将使用最后一个。