Я делаю несколько HTTP-запросов к REST API, который возвращает довольно много данных (около 100 МБ).Теперь я использовал HttpClientFactory
из .Net Core для получения данных, и он работает нормально.Но что меня озадачило, так это несоответствие моего времени и внутреннего времени, которое исходит из самой библиотеки.
Вот пример сообщения из библиотеки:
Завершить обработку HTTP-запроса после130311.0094ms - ОК
Дело в том, что действительно требуется 20-30 секунд, чтобы действительно загрузить все данные, даже если библиотека написала, что все закончено (выполнить метод client.GetAsync()
).
Я предполагаю, что здесь происходит то, что библиотека очень хочет сообщать сразу после получения заголовка, не дожидаясь загрузки тела.
Это действительно звучит как ошибка, но я не уверен, что это так.Может быть, у кого-то есть лучшее объяснение, почему это происходит?
PS Вот пример моего кода:
Stopwatch watch = new Stopwatch();
watch.Start();
var response = await Client.GetAsync(url);
watch.Stop();
Console.WriteLine($"Elapsed time {watch.ElapsedMilliseconds} ms");
Истекшее время в моем журнале намного выше, чем в системном сообщении
PPS Я попытался запустить с HttpCompletionOption.ResponseContentRead
, но это действительно не изменило результат, это все еще большая разница.