Mam trochę adresu URL, który ma miejsce w jego parametrze zapytania. Chcę tego użyć w curl, np
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"
co daje
Malformed Request-Line
Zgodnie z moim zrozumieniem o / p wynika z miejsca występującego w param zapytania.
Czy jest jakiś sposób na automatyczne zakodowanie adresu URL przed przekazaniem go do polecenia curl?
msg = '='
?"msg1=Hello&msg2=World"
? Spowoduje to zakodowanie&
między parametrami, które oznaczałyby niewłaściwą rzecz do wysłania na serwer--data-urlencode
parametrów, po jednym dla każdej pary klucz-wartość.Gdzie
$URL
jest adres URL, na którym chcesz wykonać tłumaczenia.Istnieje również więcej niż jeden rodzaj tłumaczenia (kodowania) w adresie URL, więc możesz chcieć:
zamiast.
źródło
echo "$URL" | sed 's/ /%20/'
nie zrobi to dobrze, jeśli%
w adresie URL są znaki. Ponadto spacje są zwykle kodowane jako+
(i+
jako%2b
). Polecam niezawodne rozwiązanie Perla.sed 's/ /%20/g'
jeśli masz więcej niż jedno miejsce do przetłumaczenia ...