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