.NET 4.x C# HttpWebRequest,HttpWebResponse не обновляется ответ после 4 итерации запроса
Формулировка задачи:
Здравствуйте. У меня такая проблема, делаю запрос в цикле к API сайта, чтобы получить архив ставок по валютам. Дело в том что на 4 итерации данные от сервера перестают обновляться, постоянно одни и те же цифры приходят, хотя запрос уходит с разными параметрами даты. Мне кажется, что дело в HttpWebResponse, что он не разрывает соединение и поэтому накладка получается и данные остаются старыми. Кто сталкивался с такой проблемой?
На картинка показано что первых 3 запроса приходят с обновленными данными, а 4 и последующий уже не обновляются
Листинг программы
- 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();
- }
- }
- }
Решение задачи: «.NET 4.x C# HttpWebRequest,HttpWebResponse не обновляется ответ после 4 итерации запроса»
textual
Листинг программы
- 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д