2013-02-24 2 views
2

У меня есть URL, как так:
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». –

+0

Показать полную командную строку. Начните с размещения URL в двойных кавычках. – Axel

ответ

7

Одним из ответов было бы просто кодирование URL-адресов ваших пространств как %20, избавление от любых литералов.

Однако wget сделает это за вас. Ваша проблема заключается в том, что вы правильно указали, когда вы инициализируете переменную cURL, но не тогда, когда вы на самом деле , используя в командной строке curl. Вы также должны указать там, иначе bash будет интерпретировать любые пробелы в этой переменной в качестве разделителей аргументов:

wget -O test.html "$cURL" 
Смежные вопросы