.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();
}
}