Асинхронная отправка GET запроса, вывод ответа в консоль
Асинхронно отправляю некоторое количество запросов.
using var client = new HttpClient();
var tasks = pairs.Select(pair => client.GetAsync(BinanceApi._depth_string_request(pair)));
await Task.WhenAll(tasks);
Как вывести в консоль ответы на все эти запросы?
Ответы (1 шт):
Автор решения: Exploding Kitten
→ Ссылка
Метод GetAsync возвращает типизированные объекты (Task), т.е. передавая эти таски в WhenAll, он автоматически распакует результаты выполнения, в вашем случае HttpResponseMessage, а уже из него вы можете получать все что вам нужно, контент, статус код и т.д., например:
var pairs = new string[] { "1", "2", "3" };
using var client = new HttpClient();
var tasks = pairs.Select(pair => client.GetAsync($"https://postman-echo.com/get?foo={pair}"));
var results = await Task.WhenAll(tasks);
foreach (var result in results)
Console.WriteLine(await result.Content.ReadAsStringAsync());
Если вам не нужен HttpResponseMessage, а просто результат, то можно попробовать GetStringAsync метод, который сразу возвращает строку (MSDN).