Работа с GET запросом и сохранение полученного файла - C#

Узнай цену своей работы

Формулировка задачи:

Саму стуктуру запроса вроде понял. Данные приходят, но как их сохранить ни как не пойму. Если уже обсуждалось - дайте ссылку где почитать. Суто вопроса: В ссылке передается текст TextSay.Text. В ответ Google отдает ссылку на mp3 файл с произношением этого текста.
Листинг программы
  1. //Создаем объект для запроса к серверу
  2. string s = "http://translate.google.com/translate_tts?q=" + TextSay.Text + "&tl=ru";
  3. HttpWebRequest r0 = (HttpWebRequest)WebRequest.Create(s);
  4. r0.Headers.Add(HttpRequestHeader.AcceptLanguage, "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
  5. 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";
  6. r0.Method = "GET";
  7. r0.Headers.Add(HttpRequestHeader.AcceptCharset, "windows-1251,utf-8;q=0.7,*;q=0.7");
  8. //возвращаем поток данных,
  9. //полученных от сервера
  10. HttpWebResponse GoogleResponse = (HttpWebResponse)r0.GetResponse();
  11. StreamReader sr = new StreamReader(GoogleResponse.GetResponseStream());
  12. string GoogleSay= sr.ReadToEnd();
  13. sr.Close();
Не могу разобраться, как сохранить этот фай на диск? Если использовать этот метод:
Листинг программы
  1. WebClient wc = new WebClient();
  2. wc.DownloadFile(s, @"GoogleSay.mp3");
Всё срабатывает если текст на английском, если есть русские символы - ошибка (приходит ерунда, непонятного формата). Подскажите как лучше сделать?

Решение задачи: «Работа с GET запросом и сохранение полученного файла»

textual
Листинг программы
  1.         static public string EncodeToURL(string toEncode)
  2.         {
  3.             byte[] toEncodeBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(toEncode);
  4.             StringBuilder tmp = new StringBuilder();
  5.             foreach (byte bt in toEncodeBytes)
  6.                 tmp.AppendFormat("%{0:X}", bt); //Символ в UTF8 и в HEX
  7.             return tmp.ToString();
  8.         }
  9.  
  10.         s = "http://translate.google.com/translate_tts?q=" + EncodeToURL("Мяу") + "&tl=ru";

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


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

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

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы