Я пытаюсь вызвать запрос HttpClient внутри цикла for следующим образом.Для этого нужно сделать несколько последовательных звонков на сторонние api rest.Но он дает мне только первый результат вызова службы при выходе из цикла до получения результата от остальной части вызова службы.
private void Search()
{
try
{
var i = 1;
using (var httpClient = new HttpClient())
{
while (i < 5)
{
string url = "https://jsonplaceholder.typicode.com/posts/" + i;
var response = httpClient.GetAsync(url).Result;
string jsonResult = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(jsonResult.ToString());
i++;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Когда я запускаю с точками отладки, программа выдает мне весь результат.Но когда я запускаю его без точек отладки, он дает мне только первый результат.
Я пробовал это с использованием асинхронных методов, также ждите методы.Это также дает мне тот же результат.
Поскольку я чувствую, что Программе нужно ждать, пока асинхронный вызов не вернет данные.
Пожалуйста, помогите мне решить эту проблему.
РЕДАКТИРОВАТЬ - асинхронный путь
private async Task<string> SearchNew()
{
try
{
var i = 1;
var res = string.Empty;
using (var httpClient = new HttpClient())
{
while (i < 5)
{
string url = "https://jsonplaceholder.typicode.com/posts/" + i;
var response = httpClient.GetAsync(url).Result;
string jsonResult = await response.Content.ReadAsStringAsync();
res = res + jsonResult + " --- ";
i++;
}
}
return res;
}
catch (Exception ex)
{
return ex.Message;
}
}
Оба дают одинаковый результат.