Работа с 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";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д