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

use*_*629 425 redirect curl command-line-interface

我知道在php脚本中:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Run Code Online (Sandbox Code Playgroud)

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

Nat*_*hta 709

使用位置标头标志:

curl -L <URL>

  • `man curl`:"使用身份验证时,curl只将其凭据发送给初始主机.<...>另请参阅--location-trusted如何更改此权限." (12认同)
  • 这也不适用于通过 Google 进行身份验证以访问电子表格。:/ (3认同)

小智 23

我遇到了类似的问题.我在这里发布我的解决方案因为我相信它可能会对评论者之一有所帮助.

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

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

请注意,j_username和j_password是我网站登录表单的字段名称.您必须打开网页的来源,以查看用户名字段的"名称"和密码字段的"名称"是什么.之后我去了一个带有java脚本的html文件,其中嵌入了新的URL.解析完后,只需使用新URL重新提交:

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


fre*_*dev 11

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

curl -L http://www.example.com
Run Code Online (Sandbox Code Playgroud)

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

--max-redirs <num>
Run Code Online (Sandbox Code Playgroud)

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