2013-02-24 80 views
2

我有一個網址像這樣:「這是這樣一個美好的一天」
http://localhost:8999/createAudio?method=createAudio&sessionId=1234&text=${line}&voice=Paul&encoder=MP3";
哪裏${line}
我使用wget捕捉到上述HTTP請求的輸出像這樣:
cURL="http://localhost:8999/createAudio?method=createAudio&sessionId=1234&text=${line}&voice=Sangeeta&encoder=MP3";
wget -O test.html ${cURL}
空白字符的URL導致了wget失敗

我的問題是,在一個空白的第一個實例的http請求削減。所以這將是發出HTTP請求會是這樣的:
http://localhost:8999/createAudio?method=createAudio&sessionId=1234&text=This

如何確保整個${line}在HTTP請求中被使用?

+2

空格必須在URL中進行編碼。用'%20'代替。 – 2013-02-24 20:04:36

+0

顯示完整的命令行。首先將URL放在雙引號中。 – Axel 2013-02-24 20:08:16

回答

7

一個答案是簡單地URL空間編碼爲%20,擺脫任何文字空間。

但是,wget將爲您做到這一點。這裏的問題是,當你初始化變量cURL時,你已經正確地引用了它,但是當你在curl命令行中使用時,它實際上並不是。您還需要在那裏引用,否則bash將會將該變量中的任何空格解釋爲參數分隔符:

wget -O test.html "$cURL"