J'ai l'URL dans une variable, qui est lu à partir d'un autre endroit. Cette variable a les caractères ?
et &
. Si je saisis l'URL complète entre guillemets simples ou doubles, cela fonctionne très bien. Mais si j'entre la variable, curl se plaint que l'URL a des caractères illégaux. Comment est-ce que je contourne ceci? PS: J'ai également essayé de remplacer ?
et &
avec %3F
et %26
mais cela n'a pas fonctionné.cURL: comment entrer une URL à partir d'une variable avec des caractères spéciaux
Exemple:
$ echo "$location"
https://example.com/dothis?param1=something¶m2=somethingelse
$ curl "$location" -o /dev/null > /dev/null
curl: (3) Illegal characters found in URL
$ curl "https://example.com/dothis?param1=something¶m2=somethingelse" -o /dev/null > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 126k 0 126k 0 0 13974 0 --:--:-- 0:00:09 --:--:-- 32272
Impossible de reproduire ceci ici. Peut-être qu'il y a des caractères invisibles dans votre URL. Réessayez, peut-être, après avoir redéfini votre variable 'location'. –
Essayez 'echo" $ location "| LC_ALL = C cat -vet' pour voir s'il y a des caractères invisibles dans la variable. Notez que le '-e' le fera ajouter un" $ "à la fin de la ligne; rien d'autre que cela est un problème potentiel. –
C'est vrai @GordonDavisson. 'cat -A' a montré un'^M' avant '$'. Merci beaucoup. –