Tengo alguna url que tiene espacio en su parámetro de consulta. Quiero usar esto en curl, por ejemplo
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 da
Malformed Request-Line
Según mi entendimiento, o / p se debe al espacio presente en el parámetro de consulta.
¿Hay alguna forma de codificar la url automáticamente antes de proporcionarla al comando curl?
msg = '='
?"msg1=Hello&msg2=World"
? Esto codificará&
entre los parámetros que significarían algo incorrecto para enviar al servidor--data-urlencode
parámetros, uno para cada par clave-valor.¿Dónde
$URL
está la url en la que quieres hacer las traducciones?También hay más de un tipo de traducción (codificación) que puede tener en una URL, por lo que puede hacer lo siguiente:
en lugar.
fuente
echo "$URL" | sed 's/ /%20/'
no hará lo correcto si hay%
caracteres en la URL. Además, los espacios normalmente se codifican como+
(y+
como%2b
). Recomiendo la solución Perl, que es confiable.sed 's/ /%20/g'
si tiene más de un espacio para traducir ...