Curl

De knowledge
Révision datée du 19 septembre 2025 à 15:49 par Jpinon (discussion | contributions) (Page créée avec « = Utilisation de l'option -w avec curl = L'option <code>-w</code> (ou <code>--write-out</code>) de <code>curl</code> permet d'extraire des informations spécifiques sur la requête HTTP, comme le code de retour, le type de contenu, les temps de connexion, etc., **sans affecter le fichier de sortie** défini par <code>-o</code>. == Syntaxe de base == <syntaxhighlight lang="bash"> curl -s -o out/parse.zip -w "%{http_code}\n" -F "file=@in/PE.pdf" 'https://example.... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Utilisation de l'option -w avec curl

L'option -w (ou --write-out) de curl permet d'extraire des informations spécifiques sur la requête HTTP, comme le code de retour, le type de contenu, les temps de connexion, etc., **sans affecter le fichier de sortie** défini par -o.

Syntaxe de base

curl -s -o out/parse.zip -w "%{http_code}\n" -F "file=@in/PE.pdf" 'https://example.com/upload'
  • -s : mode silencieux (supprime la barre de progression).
  • -o out/parse.zip : enregistre le corps de la réponse dans le fichier.
  • -w "%{http_code}\n" : affiche le code HTTP à la fin, sans l'inclure dans le fichier.

Variables disponibles avec -w

Voici quelques variables utiles que l'on peut inclure dans le format de sortie :

📄 Statut HTTP

  • %{http_code} : code de retour HTTP (ex. 200, 404)
  • %{response_code} : identique à http_code
  • %{exitcode} : code de sortie de curl

⏱️ Temps

  • %{time_total} : durée totale de la requête
  • %{time_connect} : temps pour établir la connexion
  • %{time_starttransfer} : temps jusqu’au premier octet reçu

📦 Transfert

  • %{size_download} : taille des données téléchargées
  • %{size_upload} : taille des données envoyées
  • %{speed_download} : vitesse de téléchargement

🌐 Réseau

  • %{remote_ip} : IP du serveur distant
  • %{remote_port} : port du serveur distant
  • %{ssl_verify_result} : résultat de la vérification SSL

🧾 En-têtes

  • %{content_type} : type MIME du contenu
  • %{redirect_url} : URL de redirection (si applicable)
  • %{url_effective} : URL finale après redirections

Exemple complet

curl -s -o out/parse.zip -w "Code HTTP: %{http_code}\nType: %{content_type}\nDurée: %{time_total}s\n" \
     -F "file=@in/PE.pdf" 'https://example.com/upload'

Astuce : rediriger la sortie -w dans un fichier séparé

curl -s -o out/parse.zip -w "%{http_code}\n" -F "file=@in/PE.pdf" 'https://example.com/upload' > out/status.log

Cela permet de garder le fichier téléchargé propre, tout en enregistrant les métadonnées dans un fichier à part.

Conclusion

L'option -w est idéale pour automatiser les traitements HTTP avec curl, en extrayant des informations utiles sans interférer avec le contenu téléchargé via -o.