URL中的空格导致wget失败

时间:2013-02-24 19:59:10

标签: bash wget

我有这样的网址:
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}

我的问题是http请求会在第一个空白区域切断。因此,将发出的http请求将如下:
http://localhost:8999/createAudio?method=createAudio&sessionId=1234&text=This

如何确保在http请求中使用整个${line}

1 个答案:

答案 0 :(得分:7)

一个答案是简单地将您的空格URL编码为%20,删除任何文字空格。

但是,wget会为您执行此操作。这里的问题是,在初始化cURL变量时,您已正确引用,但在curl命令行中实际使用时却没有。你还需要在那里引用,否则bash会将该变量中的任何空格解释为参数分隔符:

wget -O test.html "$cURL"