У меня есть некоторый URL, который имеет место в параметре запроса. Я хочу использовать это в curl, например
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"
который выдает
Malformed Request-Line
Согласно моему пониманию, o / p связано с наличием места в параметре запроса.
Есть ли возможность автоматически закодировать URL-адрес перед его передачей команде curl?
msg = '='
?"msg1=Hello&msg2=World"
? Это закодирует&
между параметрами, что будет означать неправильную отправку на сервер--data-urlencode
параметров, по одному для каждой пары ключ-значение.Где
$URL
находится URL, на который вы хотите сделать перевод.Существует также более одного типа перевода (кодировки), который вы можете иметь в URL, поэтому вы можете сделать следующее:
вместо.
источник
echo "$URL" | sed 's/ /%20/'
это не будет делать правильно, если%
в URL есть символы. Кроме того, пробелы обычно кодируются как+
(и+
как%2b
). Я рекомендую решение Perl, которое является надежным.sed 's/ /%20/g'
если у вас есть более одного пробела для перевода ...