Я получаю огромные JSON
данные с сервера
Проблема заключается в том, что процесс сериализации требует снижения производительности. Чтобы минимизировать эту стоимость, мне нужно сначала получить эти данные в виде потока, а затем с помощью Json.net
библиотеки Newtonsoft сериализовать данные в виде потока до требуемого типа.
Сейчас я делаю это:
using (var stream = await httpClient.GetStreamAsync(requestUrl))
{
using(var streamReader = new StreamReader(stream))
{
using(var jsonReader = new JsonTextReader(streamReader))
{
var items = jsonSerializer.Deserialize<TEntity[]>(jsonReader);
//Some logic
}
}
}
Приведенный выше код хорош, но мне нужно получить HttpStatusCode
от объекта ответа, но я не могу получить объект ответа при работе с потоками. Я искал решение и нашел этот вопрос.
Теперь мой вопрос: есть ли разница между этими двумя подходами?
Вызов GetAsync
для получения объекта ответа, а затем вызов response.Content.ReadAsStreamAsync
приведет ли это к снижению производительности?
Я имею в виду, как HttpClient
делает это?
Загружает ли он данные в память, а затем, когда Я звоню response.Content.ReadAsStreamAsync
Я читаю данные из памяти как поток?
Или, когда я звоню response.Content.ReadAsStreamAsync
Я получаю данные в виде потока прямо с сервера?