J'ai une URL qui a un espace dans son paramètre de requête. Je veux utiliser ceci en boucle, par exemple
curl -G "http://localhost:30001/data?zip=47401&utc_begin=2013-8-1 00:00:00&utc_end=2013-8-2 00:00:00&country_code=USA"
ce qui donne
Malformed Request-Line
Selon ma compréhension, o / p est dû à l'espace présent dans query param.
Est-il possible d’encoder l’URL automatiquement avant de l’envoyer à la commande curl?
msg = '='
?"msg1=Hello&msg2=World"
? Cela encodera&
entre les paramètres ce qui voudrait dire une mauvaise chose à envoyer au serveur--data-urlencode
paramètres, un pour chaque paire clé-valeur.Où
$URL
est l'URL sur laquelle vous voulez faire les traductions.Il existe également plusieurs types de traduction (encodage) que vous pouvez avoir dans une URL, vous pouvez donc effectuer les tâches suivantes:
au lieu.
la source
echo "$URL" | sed 's/ /%20/'
cela ne fera pas la bonne chose s'il y a des%
caractères dans l'URL. De plus, les espaces sont normalement codés comme+
(et+
comme%2b
). Je recommande la solution Perl, qui est fiable.sed 's/ /%20/g'
si vous avez plus d'un espace pour traduire ...