Работа с GET запросом и сохранение полученного файла - C#
Формулировка задачи:
Саму стуктуру запроса вроде понял. Данные приходят, но как их сохранить ни как не пойму.
Если уже обсуждалось - дайте ссылку где почитать.
Суто вопроса:
В ссылке передается текст TextSay.Text. В ответ Google отдает ссылку на mp3 файл с произношением этого текста.
Не могу разобраться, как сохранить этот фай на диск?
Если использовать этот метод:
Всё срабатывает если текст на английском, если есть русские символы - ошибка (приходит ерунда, непонятного формата).
Подскажите как лучше сделать?
//Создаем объект для запроса к серверу
string s = "http://translate.google.com/translate_tts?q=" + TextSay.Text + "&tl=ru";
HttpWebRequest r0 = (HttpWebRequest)WebRequest.Create(s);
r0.Headers.Add(HttpRequestHeader.AcceptLanguage, "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
r0.UserAgent = "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.7 Safari/533.2";
r0.Method = "GET";
r0.Headers.Add(HttpRequestHeader.AcceptCharset, "windows-1251,utf-8;q=0.7,*;q=0.7");
//возвращаем поток данных,
//полученных от сервера
HttpWebResponse GoogleResponse = (HttpWebResponse)r0.GetResponse();
StreamReader sr = new StreamReader(GoogleResponse.GetResponseStream());
string GoogleSay= sr.ReadToEnd();
sr.Close(); WebClient wc = new WebClient();
wc.DownloadFile(s, @"GoogleSay.mp3");Решение задачи: «Работа с GET запросом и сохранение полученного файла»
textual
Листинг программы
static public string EncodeToURL(string toEncode)
{
byte[] toEncodeBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(toEncode);
StringBuilder tmp = new StringBuilder();
foreach (byte bt in toEncodeBytes)
tmp.AppendFormat("%{0:X}", bt); //Символ в UTF8 и в HEX
return tmp.ToString();
}
s = "http://translate.google.com/translate_tts?q=" + EncodeToURL("Мяу") + "&tl=ru";