我知道在 php 脚本中:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
将遵循重定向。有没有办法使用命令行 cURL 跟踪重定向?
我知道在 php 脚本中:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
将遵循重定向。有没有办法使用命令行 cURL 跟踪重定向?
使用位置标头标志:
curl -L <URL>
如前所述,要遵循重定向,您可以使用标志-L
或--location
:
curl -L http://www.example.com
但是,如果你想限制重定向的数量,添加参数--max-redirs
--max-redirs <num>
设置允许的最大重定向跟随数。如果使用 ,
-L
,--location
则此选项可用于防止 curl “荒谬”地遵循重定向。默认情况下,限制设置为 50 次重定向。将此选项设置为 -1 以使其不受限制。如果多次使用此选项,将使用最后一个。
我有一个类似的问题。我在这里发布我的解决方案,因为我相信它可能会帮助其中一位评论者。
对我来说,障碍是该页面需要登录,然后通过 javascript 给我一个新的 URL。这是我必须做的:
curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <URL>
请注意,j_username
和j_password
是我网站登录表单的字段名称。您必须打开网页的源代码才能查看用户名字段的“名称”和密码字段的“名称”在您的情况下是什么。之后,我使用嵌入了新 URL 的 java 脚本创建了一个 html 文件。解析出来后,只需使用新 URL 重新提交:
curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" <NEWURL>