Existe-t-il un moyen de suivre les redirections avec la ligne de commande cURL?

456

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?

LDN
la source

Réponses:

763

Utilisez l'indicateur d'en-tête d'emplacement:

curl -L <URL>

Nathan Kuchta
la source
1
Cela ne fonctionne pas non plus avec l'authentification auprès de Google pour accéder aux feuilles de calcul. : /
fatuhoku
13
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."
hudolejev
25

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>

user3817445
la source
15

Comme dit, pour suivre les redirections, vous pouvez utiliser le drapeau -Lou --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, --locationest 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.

Liberté
la source