Работа с 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";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы