URL中的空格导致wget下载失败。

3
我有一个如下的URL:
http://localhost:8999/createAudio?method=createAudio&sessionId=1234&text=${line}&voice=Paul&encoder=MP3";
其中${line}为"This is such a nice day."
我正在使用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

如何确保整个${line}用于Http请求?

2
URL中的空格必须进行编码。请使用“%20”进行替换。 - n. m.
显示完整的命令行。将URL放在双引号中开始。 - Axel
1个回答

9

一个解决方案是将空格简单地进行URL编码,使用%20代替任何字面上的空格。

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

wget -O test.html "$cURL"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接