Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 4
Регистрация: 18.04.2013
Сообщений: 45
1
.NET 4.x

C# HttpWebRequest,HttpWebResponse не обновляется ответ после 4 итерации запроса

07.09.2015, 14:26. Показов 414. Ответов 1
Метки нет (Все метки)

Здравствуйте. У меня такая проблема, делаю запрос в цикле к API сайта, чтобы получить архив ставок по валютам. Дело в том что на 4 итерации данные от сервера перестают обновляться, постоянно одни и те же цифры приходят, хотя запрос уходит с разными параметрами даты. Мне кажется, что дело в HttpWebResponse, что он не разрывает соединение и поэтому накладка получается и данные остаются старыми. Кто сталкивался с такой проблемой?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
                foreach(DateTime item in _periodRatesArray)
                {
                    url = string.Format("http://api.fixer.io/{0}?base=USD", item.ToString("yyy-MM-dd"));
                    HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(url);
 
                    _request.Method = "GET";
                    _request.Accept = "application/json";
 
                    using (HttpWebResponse _response = (HttpWebResponse)_request.GetResponse())
                    {
                        using (StreamReader _reader = new StreamReader(_response.GetResponseStream()))
                        {
                            Dictionary<string, dynamic> _jsonobj = JsonConvert.DeserializeObject<Dictionary<string,dynamic>>(_reader.ReadToEnd());
                            _exchangeRates.Add(new ExchangeRates { RUB = (double)_jsonobj["rates"]["RUB"], EUR = (double)_jsonobj["rates"]["EUR"], GBP = (double)_jsonobj["rates"]["GBP"], JPY = (double)_jsonobj["rates"]["JPY"] });
                            _request.Abort();
                            _response.Close();
                        }
                    }                    
                    
                    
                }
На картинка показано что первых 3 запроса приходят с обновленными данными, а 4 и последующий уже не обновляются
0
Изображения
   
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2015, 14:26
Ответы с готовыми решениями:

HttpWebRequest и HttpWebResponse
Нужно отправлять асинхронные запросы к VK API. Решил использовать HttpWebRequest и HttpWebResponse,...

HttpWebRequest и HttpWebResponse
Скажите, есть ли какая-нибудь альтернатива HttpWebRequest и HttpWebResponse для работы с хттп, но...

HttpWebRequest и HttpWebResponse отладить запрос
Здравствуйте. Сижу на бирже фл.ру и временами делаю несложные заказы, когда студенты активизируются...

Работа с классами HttpWebRequest и HttpWebResponse.
Здравствуйте, у меня есть программа, которая с помощью классов HttpWebRequest и HttpWebResponse...

1
0 / 0 / 4
Регистрация: 18.04.2013
Сообщений: 45
07.09.2015, 16:25  [ТС] 2
попробовал закрывать StreamReader, HttpWebResponse не помогло.

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
foreach(DateTime item in _periodRatesArray)
                {
 
                    url = string.Format("http://api.fixer.io/{0}?base=USD", item.ToString("yyy-MM-dd"));
                    HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(url);
                    _request.Method = "GET";
                    _request.Accept = "application/json";
                    _request.Credentials = CredentialCache.DefaultCredentials;
                    HttpWebResponse _response = null;
                    StreamReader _reader = null;
                    try
                    {
                        _response = (HttpWebResponse)_request.GetResponse();
                        _reader = new StreamReader(_response.GetResponseStream());
                        Dictionary<string, dynamic> _jsonobj = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(_reader.ReadToEnd());
                        _exchangeRates.Add(new ExchangeRates { RUB = (double)_jsonobj["rates"]["RUB"], EUR = (double)_jsonobj["rates"]["EUR"], GBP = (double)_jsonobj["rates"]["GBP"], JPY = (double)_jsonobj["rates"]["JPY"] });
 
                    }
                    finally
                    {
                        _request.Abort();  
                        if (_reader != null)
                            _reader.Dispose();
                        if (_response != null)
                            _response.Close();
                    }
 
 
                }
Добавлено через 43 минуты
Разобрался в чем проблема
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2015, 16:25

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Работа с капчей через HttpWebRequest и HttpWebResponse
Здравствуйте. ситуация следующая - я хочу разобраться с работой HttpWebRequest и HttpWebResponse....

HTTPWebResponse и HTTPWebRequest есть ли что то подобное в 1С 8.2?
Приветствую! Подскажите может ли 1C обмениваться данными с какими - нибудь сайтами? То есть...

Скачка и докачка файла HttpWebRequest/HttpWebResponse
Здравствуйте! Необходимо скачать файл по ссылке и в случае обрыва связи его потом до качать. Я так...

Взаимодействие с сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Друзья, помогите пожалуйста найти ИСЧЕРПЫВАЮЩУЮ информацию о максимально разнообразных и...

HttpWebRequest/HttpWebResponse некорректно скачивают pdf-файл (base64)
есть функция, которая предназначена для скачивания удаленных файлов, формат которых заранее не...

Прогресс бар при скачивании файла используя HttpWebRequest/HttpWebResponse
есть код void DownloadFile(string sSourceURL, string sDestinationPath) { ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.