HowtoCurl : ajout d'options longues
This commit is contained in:
parent
2eceffd267
commit
ce53403190
44
HowtocURL.md
44
HowtocURL.md
|
@ -31,44 +31,44 @@ $ curl -I www.example.com
|
|||
Pour enregistrer la ressource dans un fichier portant le même nom, utiliser l'option `-O` (ou `--remote-name`) :
|
||||
|
||||
~~~
|
||||
$ curl -O https://www.example.com/page.html
|
||||
$ curl --remote-name https://www.example.com/page.html
|
||||
~~~
|
||||
|
||||
Dans le cas d'un protocole s'appuyant sur SSL/TLS, pour ne pas vérifier la validité du certificat on ajoute l'option `-k` (ou `--insecure`) :
|
||||
|
||||
~~~
|
||||
$ curl -k https://www.example.com/
|
||||
$ curl --insecure https://www.example.com/
|
||||
~~~
|
||||
|
||||
Par défaut, curl ne suit pas les redirections HTTP (follow), il faut l'option `-L` (ou `--location`) :
|
||||
|
||||
~~~
|
||||
$ curl -L http://www.example.com
|
||||
$ curl --location http://www.example.com
|
||||
~~~
|
||||
|
||||
Pour spécifier un User-Agent, utiliser l'option `-A` (ou `--user-agent`) :
|
||||
|
||||
~~~
|
||||
$ curl -A "Mozilla/5.0 (compatible; evolix; http://evolix.com)" http://example.com
|
||||
$ curl --user-agent "Mozilla/5.0 (compatible; evolix; http://evolix.com)" http://example.com
|
||||
~~~
|
||||
|
||||
Plus généralement, pour spécifier un en-tête HTTP utiliser l'option `-H` (ou `--header`) :
|
||||
|
||||
~~~
|
||||
$ curl http://www.example.com -H 'Accept: text/plain'
|
||||
$ curl -H 'Accept-Language: en' https://example.com
|
||||
$ curl http://www.example.com --header 'Accept: text/plain'
|
||||
$ curl --header 'Accept-Language: en' https://example.com
|
||||
~~~
|
||||
|
||||
Pour envoyer un cookie dans la requête, utiliser l'option `-b` (ou `--cookie`) :
|
||||
|
||||
~~~
|
||||
$ curl http://www.example.com -b 'key=value'
|
||||
$ curl http://www.example.com --cookie 'key=value'
|
||||
~~~
|
||||
|
||||
Pour l'utilisation d'un proxy :
|
||||
Pour l'utilisation d'un proxy, utiliser l'option `-x` (ou `--proxy`) :
|
||||
|
||||
~~~
|
||||
$ curl -x http://localhost:8123 http://www.example.com
|
||||
$ curl --proxy http://localhost:8123 http://www.example.com
|
||||
~~~
|
||||
|
||||
|
||||
|
@ -80,7 +80,7 @@ L'astuce classique est de modifier le fichier HOSTS (`/etc/hosts` sous Linux et
|
|||
Première astuce possible, modifier l'en-tête `Host` :
|
||||
|
||||
~~~
|
||||
$ curl http://192.0.2.1:8080/foo/bar -H 'Host: www.example.com'
|
||||
$ curl http://192.0.2.1:8080/foo/bar --header 'Host: www.example.com'
|
||||
~~~
|
||||
|
||||
L'inconvénient est qu'il faut modifier l'URL pour mettre l'adresse IP (ce qui ne permet pas de faire des copier/coller facilement) et que cela ne gère par le SNI (dans le cas de la couche SSL/TLS).
|
||||
|
@ -97,7 +97,7 @@ $ curl --resolve www.example.com:443:192.0.2.1 https://www.example.com/foo/bar
|
|||
Pour envoyer une authentification HTTP, préciser l'option `-u` (ou `--user`) :
|
||||
|
||||
~~~
|
||||
$ curl -u jdoe:PASSWORD https://www.example.com
|
||||
$ curl --user jdoe:PASSWORD https://www.example.com
|
||||
~~~
|
||||
|
||||
Pour spécifier la méthode HTTP POST/PUT/DELETE (par défaut GET), cela se fait avec l'option `-X` (ou `--request`) :
|
||||
|
@ -181,15 +181,15 @@ $ curl -XPUT 'http://localhost:9200/_snapshot/foo' --json '{"foo": "bar"}'
|
|||
Via un fichier :
|
||||
|
||||
~~~
|
||||
$ curl -XPUT 'http://localhost:9200/_snapshot/foo' -d @/path/to/file
|
||||
$ curl -XPUT 'http://localhost:9200/_snapshot/foo' --data @/path/to/file
|
||||
~~~
|
||||
|
||||
### Version compressée
|
||||
|
||||
Pour obtenir le contenu gzipé (avec un en-tête HTTP forcé) :
|
||||
Pour obtenir le contenu _gzipé_ (avec un en-tête HTTP forcé) :
|
||||
|
||||
~~~
|
||||
$ curl www.example.com -H 'Accept-Encoding:gzip, deflate'
|
||||
$ curl www.example.com --header 'Accept-Encoding:gzip, deflate'
|
||||
~~~
|
||||
|
||||
### If-(M|Unm)odified-Since : contrainte sur la date de modification
|
||||
|
@ -238,10 +238,10 @@ timelookup: %{time_namelookup}\n
|
|||
time_total: %{time_total}\n
|
||||
~~~
|
||||
|
||||
Puis faire une requete curl, avec l'option -w, pour utiliser ce fichier de format :
|
||||
Puis faire une requête curl, avec l'option `-w` ou `--write-out`, pour utiliser ce fichier de format :
|
||||
|
||||
~~~
|
||||
curl -w "@curl-time.txt" -o /dev/null -s "https://www.example.com/"
|
||||
curl --write-out "@curl-time.txt" --remote-name /dev/null -s "https://www.example.com/"
|
||||
~~~
|
||||
|
||||
## Autres protocoles
|
||||
|
@ -265,7 +265,7 @@ $ curl --url "imaps://mail.example.com" --user "bar@example.com:password"
|
|||
Récupérer le fichier Debian.iso via FTP :
|
||||
|
||||
~~~
|
||||
$ curl -u jdoe:PASSWORD -O ftp://ftp.example.com/foo/bar/Debian.iso
|
||||
$ curl --user jdoe:PASSWORD --remote-name ftp://ftp.example.com/foo/bar/Debian.iso
|
||||
~~~
|
||||
|
||||
Lister le contenu d'un dossier :
|
||||
|
@ -277,9 +277,9 @@ $ curl ftp://ftp.example.com/foo/bar/
|
|||
Envoyer des fichiers :
|
||||
|
||||
~~~
|
||||
$ curl -u jdoe:PASSWORD -T fichier ftp://ftp.example.com/
|
||||
$ curl --user jdoe:PASSWORD --upload-file fichier ftp://ftp.example.com/
|
||||
|
||||
$ curl -u jdoe:PASSWORD -T "{fichier1,fichier2}" ftp://ftp.example.com/
|
||||
$ curl --user jdoe:PASSWORD --upload-file "{fichier1,fichier2}" ftp://ftp.example.com/
|
||||
~~~
|
||||
|
||||
## FAQ
|
||||
|
@ -302,16 +302,16 @@ On désactive alors le buffer de "curl" avec l'option `-N` (ou `--no-buffer`) af
|
|||
|
||||
Selon la version de l'OS où de la clé DH qui a été généré, il se peut qu'on ai une erreur "SSL routines:tls_process_ske_dhe:dh key too small" en faisant une requêtes curl.
|
||||
|
||||
Si vous souhaitez bypasser la vérification clé DH on peu utilisé l'option --cipher comme ceci :
|
||||
Si vous souhaitez _bypasser_ la vérification clé DH on peu utiliser l'option `--cipher` comme ceci :
|
||||
|
||||
~~~
|
||||
# curl --ciphers 'DEFAULT:!DH'
|
||||
~~~
|
||||
|
||||
On peux également utilisé l'option --cipher pour désactivé d'autres cipher lors de la requetes curl, ou de la limité seulement a certains cipher par exemple :
|
||||
On peux également utilisé l'option `--cipher` pour désactivé d'autres cipher lors de la requêtes curl, ou de la limité seulement a certains cipher par exemple :
|
||||
|
||||
~~~
|
||||
# curl --ciphers 'ECDHE-RSA-AES128-GCM-SHA256'
|
||||
~~~
|
||||
|
||||
ou rajouter l'option `--ciphers ECDHE-RSA-AES128-GCM-SHA256` dans le fichier `.curlrc`
|
||||
ou rajouter l'option `--ciphers ECDHE-RSA-AES128-GCM-SHA256` dans le fichier `.curlrc`
|
||||
|
|
Loading…
Reference in a new issue