Je sais que dans un script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
suivra les redirections. Existe-t-il un moyen de suivre les redirections avec la ligne de commande cURL?
Je sais que dans un script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
suivra les redirections. Existe-t-il un moyen de suivre les redirections avec la ligne de commande cURL?
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>
la source
Comme dit, pour suivre les redirections, vous pouvez utiliser le drapeau
-L
ou--location
:Mais si vous souhaitez limiter le nombre de redirections , ajoutez le paramètre
--max-redirs
la source