Saya punya beberapa url yang memiliki ruang di param kueri itu. Saya ingin menggunakan ini dalam ikal, misalnya
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"
yang memberi tahu
Malformed Request-Line
Sesuai pemahaman saya o / p adalah karena ruang yang ada di param query.
Apakah ada cara untuk menyandikan url secara otomatis sebelum memberikannya ke perintah curl?
msg = '='
?"msg1=Hello&msg2=World"
? Ini akan menyandikan&
antara parameter yang berarti mengirim sesuatu ke server salah--data-urlencode
parameter, satu untuk setiap pasangan nilai kunci.Di mana
$URL
url Anda ingin melakukan terjemahan.Ada juga lebih dari satu jenis terjemahan (pengodean) yang dapat Anda miliki di URL, sehingga Anda mungkin ingin melakukannya:
sebagai gantinya.
sumber
echo "$URL" | sed 's/ /%20/'
tidak akan melakukan hal yang benar jika ada%
karakter di URL. Juga, spasi biasanya dikodekan sebagai+
(dan+
sebagai%2b
). Saya merekomendasikan solusi Perl, yang dapat diandalkan.sed 's/ /%20/g'
jika Anda memiliki lebih dari satu ruang untuk menerjemahkan ...