Outils pour utilisateurs

Outils du site


all:bibles:linux:commandes:curl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
all:bibles:linux:commandes:curl [2024/04/22 13:54] – [Paramètres] omeylhocall:bibles:linux:commandes:curl [2025/08/06 11:41] (Version actuelle) omeylhoc
Ligne 1: Ligne 1:
 +====== curl ======
  
 +----
 +
 +===== Paramètres =====
 +
 +^Option  ^ Description  
 +| -A, –user-agent  | Spécifier un user-agent  |
 +| -b, –cookie  | Transmettez les données au serveur HTTP dans l’en-tête Cookie. Ce sont supposément les données précédemment reçues du serveur dans une ligne “Set-Cookie:”. Les données doivent être au format “NAME1 = VALUE1; NAME2 = VALUE2”.  |
 +| –connect-timeout  | Spécifier un timeout (délai de connexion)  |
 +| -C, -continue-at  | Résumer un téléchargement  |
 +| -F, –form  | Émuler un formulaire rempli dans lequel un utilisateur a appuyé sur le bouton d’envoi.  |
 +| -H, –headers  | En-tête supplémentaire à inclure dans la requête lors de l’envoi de HTTP à un serveur.  |
 +| -i, –include  | Incluez les en-têtes de réponse HTTP dans la sortie. Les en-têtes de réponse HTTP peuvent inclure des éléments tels que le nom du serveur, les cookies, la date du document, la version HTTP et plus encore …  |
 +| -I, –head  | Récupérez uniquement les en-têtes! Les serveurs HTTP comportent la commande HEAD que celle-ci utilise pour n’obtenir que l’en-tête d’un document.\\Lorsqu’il est utilisé sur un fichier FTP ou FILE, curl affiche la taille du fichier et le dernier mod‐ temps de ification seulement.  |
 +| -L, –location  | Suit l'en-tête Location et un code de réponse 3XX  |
 +| -O  | sauvegarde le fichier avec le même nom que celui sur le serveur  |
 +| -o <nom>  | sauvegarde le fichier avec un nom spécifique  |
 +| -X, –request  | Spécifie une méthode de demande personnalisée à utiliser lors de la communication avec le serveur HTTP (POST, PUT, DELETE, …).  |
 +| -Y, –speed-limit  | Arrête les transferts plus lentement que cela  |
 +| -v  | mode verbeux  |
 +
 +----
 +
 +[[all:bibles:linux:commandes:curl|Haut de page]]
 +
 +===== Exemples =====
 +
 +==== Vérifier l'accès à une url ====
 +
 +<code bash>
 +curl http://url.com
 +</code>
 +
 +==== Sauvegarder le contenu dans un fichier ====
 +
 +=== Fichier unique ===
 +
 +<code bash>
 +curl –o nom_fichier https://url.com/fichier
 +curl -O https://url.com/fichier                 # le fichier local aura le même nom que le fichier distant
 +</code>
 +
 +=== A partir d'une liste de fichier ===
 +
 +<code bash>
 +xargs -n 1 curl -O < liste-url.txt
 +for url in `cat liste-url.txt`; do curl $url ; done
 +</code>
 +
 +==== Reprendre un téléchargement ====
 +
 +<code bash>
 +curl –c –o nom_fichier https://url.com/fichier
 +</code>
 +
 +==== Afficher les en-têtes de requête et de réponse ====
 +
 +<code bash>
 +curl -v url.com
 +curl -i url.com
 +curl -I url.com             # affiche seulement l'en-tête
 +curl --verbose -I url.com   # affiche la réponse complète avec son en-tête
 +</code>
 +
 +==== Suivre les redirections ====
 +
 +<code bash>
 +curl -L https://www.url.com
 +</code>
 +
 +==== Télécharger à un taux limité ====
 +
 +<code bash>
 +curl --limit-rate 2000B https://url.com
 +</code>
 +
 +==== Utiliser un proxy pour se connecter ====
 +
 +<code bash>
 +curl --proxy proxy:port https://url.com
 +</code>
 +
 +==== URL de test avec injection d’en-tête ====
 +
 +<code bash>
 +curl --header 'Content-Type : application/json' http://url.com
 +</code>
 +
 +==== Afficher uniquement l’en-tête de la réponse ====
 +
 +<code bash>
 +curl --head http://url.com
 +</code>
 +
 +==== https/ssl en ignorant erreur de certificat ====
 +
 +<code bash>
 +curl --insecure https://url.com
 +</code>
 +
 +==== Utiliser un protocole spécifique (SSL/TLS) ====
 +
 +=== SSL v3 ===
 +
 +<code bash>
 +curl --sslv3 https://url.com
 +</code>
 +
 +=== TLS ===
 +
 +<code bash>
 +curl --tlsv1 https://url.com
 +curl --tlsv1.0 https://url.com
 +curl --tlsv1.1 https://url.com
 +curl --tlsv1.2 https://url.com
 +curl --tlsv1.3 https://url.com
 +</code>
 +
 +==== Serveur FTP ====
 +
 +=== Télécharger un fichier ===
 +
 +<code bash>
 +curl -u user:password -O ftp://url.com/fichier
 +</code>
 +
 +=== Envoyer un fichier ===
 +
 +<code bash>
 +curl -u utilisateur:motdepasse -X PUT -T fichier ftp://url.com
 +</code>
 +
 +==== Changer le user agent ====
 +
 +<code bash>
 +curl -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36" https://url.com # google Chrome Windows 7
 +</code>
 +
 +==== POST ====
 +
 +=== Faire un POST ===
 +
 +<code bash>
 +curl -X GET https://url.com
 +curl -X POST -d "option=valeur&champs=autrevaleur" https://url.com   # en passant des données
 +</code>
 +
 +=== Envoyer des données JSON ===
 +
 +<code bash>
 +curl -X POST -H "Content-Type: application/json" -d '{"option": "value", "quelquechose": "autrevaleur"}' https://url.com
 +</code>
 +
 +=== Envoyer un fichier JSON ===
 +
 +<code bash>
 +curl -X POST -H "Content-Type: application/json" -d "@fichier.json" https://url.com          # à partir d'un fichier
 +</code>
 +
 +<note important>Attention de ne pas oublier le @ avant le nom du fichier</note>
 +
 +----
 +[[all:bibles:linux:commandes:curl|Haut de page]]