.NET 4.x Подскажите способ парсить котировки ЦентроБанка быстрее чем за 10-15 секунд - C#

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

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

Добрый день хотел бы узнать если способ парсить котировки ЦентроБанка быстрее чем за 10-15 секунд, оптимальным было бы 5-10. Сейчас использую вот такой способ:
WebClient wc = new WebClient();
            Uri ui = new Uri("http://www.cbr.ru/scripts/XML_daily.asp");
          
            Stream stream = wc.OpenRead(ui);
            StreamReader streamReader = new StreamReader(stream,Encoding.GetEncoding(1251));
            string html = streamReader.ReadToEnd();
            string html1;
            string pattern = @"<Name>Китайских юаней</Name>
    <Value>(\d{1,}\,\d{2})";
            string pattern1 = @"<Name>Доллар США</Name>
    <Value>(\d{1,}\,\d{2})";
            Match match = Regex.Match(html, pattern);
            Match match1 = Regex.Match(html, pattern1);
            html = match.ToString().Replace(@"<Name>Китайских юаней</Name>
    <Value>", "");
            html1 = match1.ToString().Replace(@"<Name>Доллар США</Name>
    <Value>", "");
            tb_dollar.Text = html1;
            tb_yuan.Text = Convert.ToString(Convert.ToDouble(html)/10);
Еще интересно узнать отчего зависит время отправки-получения запроса с сервера, иногда результаты я получаю через 5 секунд после нажатия кнопки, а иногда на это уходит все 15.

Решение задачи: «.NET 4.x Подскажите способ парсить котировки ЦентроБанка быстрее чем за 10-15 секунд»

textual
Листинг программы
ValCurs valCurs;
var request = HttpWebRequest.Create("http://www.cbr.ru/scripts/XML_daily.asp");
using (var response = request.GetResponse()) {
    using (var sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(1251))) {
        var ser = new XmlSerializer(typeof(ValCurs));
        valCurs = ser.Deserialize(sr) as ValCurs;
    }
}
Console.WriteLine("Date: {0}", valCurs.Date);
Console.WriteLine("Name: {0}", valCurs.Name);
foreach (var val in valCurs.Valutes) {
    Console.WriteLine("ID: {0,10}", val.ID);
    Console.WriteLine("Name: {0,10}", val.Name);
    Console.WriteLine("Char code: {0,10}", val.CharCode);
    Console.WriteLine("Num code: {0,10}", val.NumCode);
    Console.WriteLine("Nominal: {0,10}", val.Nominal);
    Console.WriteLine("Value: {0,10}", val.Value);
    Console.WriteLine();
}

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


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

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

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