Réponses:
Utilisez l'indicateur d'en-tête d'emplacement:
curl -L <URL>
man curl
: "Lorsque l'authentification est utilisée, curl envoie uniquement ses informations d'identification à l'hôte initial. <...> Voir aussi --location-trusted sur la façon de changer cela."
J'avais un problème similaire. Je poste ma solution ici parce que je pense que cela pourrait aider l'un des commentateurs.
Pour moi, l'obstacle était que la page nécessitait une connexion et m'a ensuite donné une nouvelle URL via javascript. Voici ce que je devais faire:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Notez que j_username et j_password est le nom des champs du formulaire de connexion de mon site Web. Vous devrez ouvrir la source de la page Web pour voir quel est le «nom» du champ de nom d'utilisateur et le «nom» du champ de mot de passe dans votre cas. Après cela, je vais un fichier html avec script java dans lequel la nouvelle URL a été intégrée. Après avoir analysé cela, soumettez à nouveau avec la nouvelle URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
Comme dit, pour suivre les redirections, vous pouvez utiliser le drapeau -L
ou --location
:
curl -L http://www.example.com
Mais si vous souhaitez limiter le nombre de redirections , ajoutez le paramètre--max-redirs
--max-redirs <num>
Définissez le nombre maximal de suivis de redirection autorisés. Si
-L
,--location
est utilisé, cette option peut être utilisée pour empêcher curl de suivre les redirections "in absurdum". Par défaut, la limite est fixée à 50 redirections. Définissez cette option sur -1 pour la rendre illimitée. Si cette option est utilisée plusieurs fois, la dernière sera utilisée.