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

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

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

Здравствуйте. У меня такая проблема, делаю запрос в цикле к API сайта, чтобы получить архив ставок по валютам. Дело в том что на 4 итерации данные от сервера перестают обновляться, постоянно одни и те же цифры приходят, хотя запрос уходит с разными параметрами даты. Мне кажется, что дело в HttpWebResponse, что он не разрывает соединение и поэтому накладка получается и данные остаются старыми. Кто сталкивался с такой проблемой?
Листинг программы
  1. foreach(DateTime item in _periodRatesArray)
  2. {
  3. url = string.Format("http://api.fixer.io/{0}?base=USD", item.ToString("yyy-MM-dd"));
  4. HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(url);
  5. _request.Method = "GET";
  6. _request.Accept = "application/json";
  7. using (HttpWebResponse _response = (HttpWebResponse)_request.GetResponse())
  8. {
  9. using (StreamReader _reader = new StreamReader(_response.GetResponseStream()))
  10. {
  11. Dictionary<string, dynamic> _jsonobj = JsonConvert.DeserializeObject<Dictionary<string,dynamic>>(_reader.ReadToEnd());
  12. _exchangeRates.Add(new ExchangeRates { RUB = (double)_jsonobj["rates"]["RUB"], EUR = (double)_jsonobj["rates"]["EUR"], GBP = (double)_jsonobj["rates"]["GBP"], JPY = (double)_jsonobj["rates"]["JPY"] });
  13. _request.Abort();
  14. _response.Close();
  15. }
  16. }
  17.  
  18. }
На картинка показано что первых 3 запроса приходят с обновленными данными, а 4 и последующий уже не обновляются

Решение задачи: «.NET 4.x C# HttpWebRequest,HttpWebResponse не обновляется ответ после 4 итерации запроса»

textual
Листинг программы
  1. foreach(DateTime item in _periodRatesArray)
  2.                 {
  3.  
  4.                     url = string.Format("http://api.fixer.io/{0}?base=USD", item.ToString("yyy-MM-dd"));
  5.                     HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(url);
  6.                     _request.Method = "GET";
  7.                     _request.Accept = "application/json";
  8.                     _request.Credentials = CredentialCache.DefaultCredentials;
  9.                     HttpWebResponse _response = null;
  10.                     StreamReader _reader = null;
  11.                     try
  12.                     {
  13.                         _response = (HttpWebResponse)_request.GetResponse();
  14.                         _reader = new StreamReader(_response.GetResponseStream());
  15.                         Dictionary<string, dynamic> _jsonobj = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(_reader.ReadToEnd());
  16.                         _exchangeRates.Add(new ExchangeRates { RUB = (double)_jsonobj["rates"]["RUB"], EUR = (double)_jsonobj["rates"]["EUR"], GBP = (double)_jsonobj["rates"]["GBP"], JPY = (double)_jsonobj["rates"]["JPY"] });
  17.  
  18.                     }
  19.                     finally
  20.                     {
  21.                         _request.Abort();  
  22.                         if (_reader != null)
  23.                             _reader.Dispose();
  24.                         if (_response != null)
  25.                             _response.Close();
  26.                     }
  27.  
  28.  
  29.                 }

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


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

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

11   голосов , оценка 3.818 из 5

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

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

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