562 votes

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 ?

0 votes

Pour mémoire, wget suivra l'en-tête de localisation

948voto

Nathan Kuchta Points 2867

Utiliser le drapeau d'en-tête de l'emplacement :

curl -L <URL>

2 votes

Cela ne fonctionne pas non plus avec l'authentification avec Google pour accéder aux feuilles de calcul. :/

18 votes

man curl : "Lorsque l'authentification est utilisée, curl n'envoie ses informations d'identification qu'à l'hôte initial. <...> Voir également --location-trusted pour savoir comment modifier cela."

45voto

freedev Points 3367

Comme dit, pour suivre les redirections vous pouvez utiliser le drapeau -L o --location :

curl -L http://www.example.com

Mais, si vous voulez limiter le nombre de redirections ajoutez le paramètre --max-redirs

--max-redirs <num>

Définir le nombre maximum de redirections-suivies autorisées. Si -L , --location est utilisée, 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. Mettez cette option à -1 pour la rendre illimitée. Si cette option est utilisée plusieurs fois, c'est la dernière qui sera utilisée.

29voto

user3817445 Points 11

J'ai eu un problème similaire. Je publie ma solution ici car je pense qu'elle pourrait aider l'un des commentateurs.

Pour moi, l'obstacle était que la page demandait une connexion et me donnait ensuite une nouvelle URL par le biais du javascript. Voici ce que j'ai dû faire :

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

Notez que j_username y 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 du nom d'utilisateur et le 'nom' du champ du mot de passe dans votre cas. Après cela, je vais un fichier html avec java script dans lequel la nouvelle URL a été intégrée. Après l'analyse de ce fichier, il suffit de le soumettre à nouveau avec la nouvelle URL :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X