Respuestas:
Use la bandera del encabezado de ubicación:
curl -L <URL>
man curl
: "Cuando se usa la autenticación, curl solo envía sus credenciales al host inicial. <...> Vea también --location-Trusted sobre cómo cambiar esto".
Tuve un problema similar. Estoy publicando mi solución aquí porque creo que podría ayudar a uno de los comentaristas.
Para mí, el obstáculo era que la página requería un inicio de sesión y luego me daba una nueva URL a través de JavaScript. Esto es lo que tuve que hacer:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Tenga en cuenta que j_username y j_password es el nombre de los campos para el formulario de inicio de sesión de mi sitio web. Tendrá que abrir la fuente de la página web para ver cuál es el 'nombre' del campo de nombre de usuario y el 'nombre' del campo de contraseña en su caso. Después de eso, voy a un archivo html con script java en el que se insertó la nueva URL. Después de analizar esto, vuelva a enviarlo con la nueva URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
Como se dijo, para seguir los redireccionamientos puede usar la bandera -L
o --location
:
curl -L http://www.example.com
Pero, si desea limitar el número de redireccionamientos , agregue el parámetro--max-redirs
--max-redirs <num>
Establezca el número máximo de redireccionamientos seguidos permitidos. Si
-L
,--location
se utiliza, esta opción se puede utilizar para evitar la torsión de las siguientes redirecciones "en el absurdo". Por defecto, el límite se establece en 50 redirecciones. Establezca esta opción en -1 para que sea ilimitada. Si esta opción se usa varias veces, se usará la última.