Получение курсов валют с сайта "Банк России"

      В данной инструкции будет рассмотрено подключение к веб-службе сайта «Банк России», для получения ежедневных данных (курсы валют, учетные цены драг, металлов и др). Центральный банк Российской Федерации (Банк России) был учрежден 13 июля 1990 г. на базе Российского республиканского банка Госбанка СССР. Подотчетный Верховному Совету РСФСР, он первоначально назывался Государственный банк РСФСР. 
      Веб-служба, веб-сервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.
      На сегодняшний день наибольшее распространение получили следующие протоколы реализации веб-сервисов:

  • SOAP (Simple Object Access Protocol) — по сути это тройка стандартов SOAP/WSDL/UDDI
  • REST (Representational State Transfer)
  • XML-RPC (XML Remote Procedure Call)
     Данная служба работает через протокол SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам) — протокол обмена структурированными сообщениями в распределённой вычислительной среде.
      Создайте новый проект Windows Form в Microsoft Visual Studio с именем «RBK». В обозревателе решений выберете пункт «Ссылки» и сделайте клик правой клавишей мыши по нему. В появившемся контекстном меню выберете пункт «Добавить ссылку на службу…»

      В открывшемся окне найдите кнопку «Дополнительно» и сделайте по ней клик левой клавишей мыши.

      В открывшемся окне найдите кнопку «Добавить веб-ссылку…» и сделайте по ней клик левой клавишей мыши.
      В открывшемся окне введите адрес необходимой нам службы «http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx» в поле «URL-адрес» и нажмите клавишу «Enter». Введите «RBKServise» в поле «Имя веб-ссылки» и нажмите кнопку «Добавить ссылку».
      Перейдите в «Панель элементов» - группа «Общие» и сделайте клик правой клавишей мыши по этой группе. В появившемся контекстном меню выберите пункт «Выбрать элементы…».
      В появившемся окне «Выбор элементов панели элементов», выберете вкладку «Компоненты .Net Framework». Найдите компонент «DataGrid» из пространства имен «System.Windows.Forms» и поставьте напротив этого компонента галочку. Нажмите кнопку «ОК».
      После выполнения этих действий, в панели элементов, в группе «Общие» появится новый компонент «DataGrid».
Добавьте его на форму и еще несколько элементов:
  • dateTimePicker1 – дата начала получения курсов валют;
  • dateTimePicker2 - дата конца получения курсов валют;
  • button1 – кнопка запуска получения данных.
У вас получится примерно вот такая форма:
      Сделайте двойной клик по компоненту button1 и перейдите в автоматически созданный метод «button1_Click». Добавьте в него приведенный ниже код:
RBKServise.DailyInfo di = new RBKServise.DailyInfo();

System.DateTime DateFrom, DateTo;
DateFrom = dateTimePicker1.Value;
DateTo = dateTimePicker2.Value;

//Вызываем GetCursDynamic для получения таблицы с курсами заданной валютой
DataSet Ds = (System.Data.DataSet)di.GetCursDynamic(DateFrom, DateTo, "R01235");
Ds.Tables[0].Columns[0].ColumnName = "Дата";
Ds.Tables[0].Columns[1].ColumnName = "Вн.код валюты";
Ds.Tables[0].Columns[2].ColumnName = "Номинал";
Ds.Tables[0].Columns[3].ColumnName = "Курс";

dataGrid1.SetDataBinding(Ds, "ValuteCursDynamic");
      Запустите ваш проект, нажав на клавишу «F5». Выберете интервал дат для получения данных и нажмите на единственную кнопку вашей формы. После получения данных у вас получится примерно вот такой вариант:
      Для получения списка кодов поддерживаемых валют данным сервисом, добавьте дополнительно два компонента на форму:
  • Button2 – кнопка запуска получения данных;
  • DataGrid – для вывода данных.
      Сделайте двойной клик левой клавишей мыши по компоненту «Button2» и перейдите в автоматически созданный метод «button2_Click». Добавьте в него следующий листинг:
RBKServise.DailyInfo di = new RBKServise.DailyInfo();
DataSet DSC = (System.Data.DataSet)di.EnumValutes(false); //Получаем список валют
System.Data.DataTable tbl = DSC.Tables["EnumValutes"];
dataGrid2.DataSource = tbl;
      Запустите ваш проект, нажав на клавишу «F5». Нажмите на кнопку получения кодов валют. Если вы все сделали правильно, то у вас получится примерно вот такой вариант:
      Здесь вы можете получить коды валют необходимых для запроса и описание по каждой.
Дополнительную информацию о данной службе вы можете получить на официальном сайте «Банка России» по адресу http://www.cbr.ru/scripts/Root.asp?Prtid=DWS.

Ссылка для скачивания примера: Яндекс.Диск


Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!