Eu tenho algum URL que tem espaço em sua consulta param. Eu quero usar isso em curl, por exemplo
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"
que dá
Malformed Request-Line
De acordo com o meu entendimento o / p é devido ao espaço presente no parâmetro de consulta.
Existe alguma maneira de codificar o URL automaticamente antes de fornecer o comando curl?
msg = '='
?"msg1=Hello&msg2=World"
? Isto irá codificar o&
entre os parâmetros que significaria coisa errada para enviar para o servidor--data-urlencode
parâmetros, um para cada par de valores-chave.Onde
$URL
está o URL em que você deseja fazer as traduções.Também há mais de um tipo de tradução (codificação) que você pode ter em uma URL, então você pode querer fazer:
em vez de.
fonte
echo "$URL" | sed 's/ /%20/'
não fará a coisa certa se houver%
caracteres no URL. Além disso, os espaços são normalmente codificados como+
(e+
como%2b
). Eu recomendo a solução Perl, que é confiável.sed 's/ /%20/g'
se você tiver mais de um espaço para traduzir ... #