С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
70 / 44 / 28
Регистрация: 14.02.2017
Сообщений: 126

Веб-сервис ЦБ РФ

17.10.2018, 09:39. Показов 7221. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Для получения курсов валют ЦБ РФ создаю приложение WF на VS 2015 и добавляю ссылку на службу http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx. В результате копирования данных получаю:

"Не удается скачать следующие файлы из "".
http://www.cbr.ru/DailyInfoWeb... .asmx?wsdl
Пропустить эти файлы и продолжить?"

Соответственно веб-служба не устанавливается.
Как найти решение при том, что требуется получать данные именно с сайта ЦБ РФ? Парсинг с этого ресурса на постоянной основе невозможен, очень резво отрезают автоматические запросы (что по сути правильно).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2018, 09:39
Ответы с готовыми решениями:

Вызов процедуры через веб сервис
Здравствуйте. Как можно вызвать процедуру через веб сервис из C#?

Установить таймаут отправки данных на веб-сервис
День добрый! Есть SQL CLR функция на C#, которая принимает данные и отсылает их на вебсервис. Состоит из try и catch, ...

Написать веб-сервис, который будет общаться по http c другим веб-сервисом
Здравствуйте уважаемые коллеги! Извините за заголовок, не знал как лучше назвать эту тему. Вопрос в следующем ...Нужно написать веб...

7
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.10.2018, 10:54
lupanton, искать их АПИ и работать с ним.
lupanton, Вы вообще про WebRequest Когда-нибудь слышали?
про WebApi? копайте в этом направлении!

Добавлено через 1 минуту
lupanton, ради интереса попробовал простейшим десериализатором, и у я получил курсы валют, без проблем!
0
70 / 44 / 28
Регистрация: 14.02.2017
Сообщений: 126
17.10.2018, 13:11  [ТС]
Спасибо.
Это, в моем исполнении по крайней мере, плохо работает на постоянной основе - часто мои автоматические запросы отсекают. Запрос придется маскировать, а это лишний код, но и это , скорее всего, не даст нужной стабильности. Веб - службой поэтому и хочу воспользоваться - они ж ее для таких случаев и делали.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.10.2018, 13:57
lupanton, покажите код в котором вы делаете запрос! Пока я вижу что у вас не получается что-то, а что не понятно. Возможно вы слишком часто делаете запросы, поэтому вас отсекает, возможно вы делаете не правильные запросы, но это все гадание на остатках растворимого кофе. Так что выложите код. и посмотрим, что у вас не так!

Добавлено через 17 минут
для приведенного мной примера, требуются классы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class ValCurs
    {
 
        private ValCursValute[] valuteField;
 
        private string dateField;
 
        private string nameField;
 
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Valute")]
        public ValCursValute[] Valute
        {
            get
            {
                return this.valuteField;
            }
            set
            {
                this.valuteField = value;
            }
        }
 
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Date
        {
            get
            {
                return this.dateField;
            }
            set
            {
                this.dateField = value;
            }
        }
 
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }
    }
 
    /// <remarks/>
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class ValCursValute
    {
 
        private ushort numCodeField;
 
        private string charCodeField;
 
        private ushort nominalField;
 
        private string nameField;
 
        private string valueField;
 
        private string idField;
 
        /// <remarks/>
        public ushort NumCode
        {
            get
            {
                return this.numCodeField;
            }
            set
            {
                this.numCodeField = value;
            }
        }
 
        /// <remarks/>
        public string CharCode
        {
            get
            {
                return this.charCodeField;
            }
            set
            {
                this.charCodeField = value;
            }
        }
 
        /// <remarks/>
        public ushort Nominal
        {
            get
            {
                return this.nominalField;
            }
            set
            {
                this.nominalField = value;
            }
        }
 
        /// <remarks/>
        public string Name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }
 
        /// <remarks/>
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
 
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ID
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }
    }
и все это безобразие легко получает нужную информацию, частота запросов раз в минуту, вот уж минут как 20 ни разу не сбоило!
0
70 / 44 / 28
Регистрация: 14.02.2017
Сообщений: 126
17.10.2018, 14:28  [ТС]
Вот класс, который делает запрос и сохраняет полученный html в файл
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class HtmlDownloader
    {
        public static void DownloadData(string url)
        {
            try
            {
                string html;
                
                WebClient web = new WebClient();
                web.Encoding = Encoding.GetEncoding(1251);
                //http://www.cbr.ru/scripts/XML_daily.asp
                Stream data = web.OpenRead(url);
                StreamReader reader = new StreamReader(data, Encoding.GetEncoding(1251));
                html = reader.ReadLine();
                data.Close();
                reader.Close();
                FileStream file = new FileStream("data.txt", FileMode.Create, FileAccess.ReadWrite);
                StreamWriter wData = new StreamWriter(file);
                wData.Write(html);
                wData.Close(); 
            }
            catch
            {
                MessageBox.Show("No data from CB.");
            }
        }
    }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.10.2018, 14:53
Цитата Сообщение от lupanton Посмотреть сообщение
http://www.cbr.ru/scripts/XML_daily.asp
вы идете по этому адресу???
а не по
https://www.cbr.ru/scripts/XML_daily.asp?date_req=17/10/2018
???
и зачем происходит сохранение?
Вам не проще сразу получить и десериализовать?

Добавлено через 7 минут
ну или по крайней мере сохранить не формате *.txt а в формате *.xml
0
70 / 44 / 28
Регистрация: 14.02.2017
Сообщений: 126
17.10.2018, 16:05  [ТС]
1. Да по http://www.cbr.ru/scripts/XML_daily.asp
2. Сохранение как раз для того, чтобы уменьшить количество запросов. Информация, как правило, меняется 1 раз в сутки - можно работать и с файлом.

Меня даже на отладке частенько тормозят. Как сериализация меняет суть этих запросов? Это же просто преобразование объекта в поток байтов и, соответственно, обратно, а факт обращения к серверу как был, так и остался.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.10.2018, 16:29
Цитата Сообщение от lupanton Посмотреть сообщение
Сохранение как раз для того, чтобы уменьшить количество запросов
моя ваша не понимать, моя говорить вам что проблем не наблюдать с запросами, а вы их сокращать.
По сути, вы не правы в том что не "слушаете" ответ сервера, и начинаете рассуждать
Цитата Сообщение от lupanton Посмотреть сообщение
Соответственно веб-служба не устанавливается.
вы даже не нашли проблему.
На самом деле я устроил по указанному адресу маленькую DDOS атаку на 1000 запросов и вся пачка асинхронных запросов (1000 запросов, менее чем за 1 секунду) вернула результат. Так что ваша проблема не в сайте, а в вашем коде.
Цитата Сообщение от lupanton Посмотреть сообщение
Как сериализация меняет суть этих запросов?
по сути никак.
Цитата Сообщение от lupanton Посмотреть сообщение
а факт обращения к серверу как был, так и остался.
а вот он как раз здесь ни причем, у вас либо с сетью проблема, либо проблема с кодом!
Посмотрите что вам отвечает сервер. как смотреть

Добавлено через 1 минуту
попробуйте уйти от
Цитата Сообщение от lupanton Посмотреть сообщение
WebClient web = new WebClient();
в сторону
C#
1
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2018, 16:29
Помогаю со студенческими работами здесь

Веб-сервер или веб-сервис
Здравствуйте! Проблема в том, что я не могу разобраться как реализуется следующая вещь: Есть приложение-клиент на андроид и...

Веб-сервис
Здравствуйте. Необходимо реализовать такой функционал: Есть сайт, с которого необходимо подключаться к локальному компьютеру и получать...

Веб-сервис
Добрый день, простите если вдруг пишу не туда Хочу реализовать один веб-сервис, суть его будет такова: Заходишь на сайт, будет всего...

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

Веб-сервис с нуля
Добрый день! Хочу сделать личный веб-сервис. Задача сервиса получить текстовый CSV-файл, обработать его в Excel 2013(2016) (например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru