371 votes

En passant une URL avec des crochets curl

Si j'essaie de passer une URL à friser qui contient des parenthèses, il échoue avec une erreur:

$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29

Cependant, si je m'échappe sur les deux supports, il semble fonctionner:

$ curl 'http://www.google.com/?TEST\[\]=1'

Fait intéressant, j'utilise une barre oblique inverse pour échapper seulement de la première tranche d'il échoue silencieusement avec le code d'erreur 20497:

$ curl 'http://www.google.com/?TEST\[]=1'
$ echo $!
20497

Ma question est de savoir comment résoudre ce problème pour les cas généraux? Est-il un argument qui s'échappe automatiquement les Url, ou une description des caractères doivent être échappés avant de passer à friser?

Merci.

593voto

chaimp Points 2450

Tant pis, je l'ai trouvé dans la doc:

-g/--globoff
              This  option  switches  off  the "URL globbing parser". When you set this option, you can
              specify URLs that contain the letters {}[] without having them being interpreted by  curl
              itself.  Note  that  these  letters  are not normal legal URL contents but they should be
              encoded according to the URI standard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X