Premiere version de HowtocURL

This commit is contained in:
Tristan PILAT 2017-03-17 17:00:17 +01:00
parent f3f7cc324e
commit 337ef1bc6b

View file

@ -1,10 +1,46 @@
---
title: Howto cURL
categories: tips
title: Tips cURL
...
* <https://curl.haxx.se/>
* <https://github.com/curl/curl/>
**cURL** est un outil s'appuyant sur une bibliothèque (libcurl) pour transférer des données à l'aide de différents protocol. Il peut être utilisé en ligne de commande ou dans scripts. Il support une multitude de protocols comme notamment HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3, SSCP, SFTP, SMB, SMTP, SMTPS, Telnet…
## Utilisation de base
~~~
$ curl https://www.example.com
~~~
Enregistrer en local :
~~~
$ curl -O https://www.example.com/
~~~
Ignorer le certificat :
~~~
$ curl -k https://www.example.com/
~~~
Suivre les redirect 301 :
~~~
$ curl -L http://www.example.com
~~~
Spécifier la méthode (par défaut GET) POST/PUT/DELETE :
~~~
$ curl -X POST https://www.example.com
~~~
## Outrepasser le nom de domaine
Avec cette astuce, pas besoin de modifier `/etc/hosts`, ce qui est très pratique.
Avec cette astuce, inutile de modifier `/etc/hosts`, ce qui est très pratique.
En HTTP classique :
@ -18,6 +54,42 @@ En HTTPs (SNI) :
$ curl --resolve www.example.com:443:192.0.2.1 https://www.example.com/foo/bar
~~~
## Authentification
~~~
$ curl -u username:password https://www.example.com
~~~
## SMTP
Envoyer un email :
~~~
$ curl --mail-from foo@example.com --mail-rcpt bar@example.com smtp://example.com/
~~~
## FTP
Récupérer le fichier Debian.iso via FTP :
~~~
$ curl -u ftpuser:ftppass -O ftp://ftp.example.com/foo/bar/Debian.iso
~~~
Lister le contenu d'un dossier :
~~~
$ curl ftp://ftp.example.com/foo/bar/
~~~
Envoyer des fichiers :
~~~
$ curl -u ftpuser:ftppass -T fichier ftp://ftp.example.com/
$ curl -u ftpuser:ftppass -T "{fichier1,fichier2}" ftp://ftp.example.com/
~~~
## Divers
Afficher uniquement le header :
@ -26,8 +98,7 @@ Afficher uniquement le header :
$ curl -I www.example.com
~~~
Afficher le header et le contenu :
Afficher le header et le contenu :
~~~
$ curl -i www.example.com
~~~
@ -37,3 +108,15 @@ Obtenir le contenu gzipé :
~~~
$ curl www.example.com -H 'Accept-Encoding:gzip, deflate'
~~~
Récupérer le contenu seulement si celui-ci a été modifié après le 17 Mers 2017 :
~~~
$ curl -z 17-Mar-17 www.example.com
~~~
Récupérer le contenu seulement si celui-ci a été modifié avant le 17 Mers 2017 :
~~~
$ curl -z -17-Mar-17 www.example.com
~~~