Ответ на внешний http-запрос C# как потоковый ответ APIC#

Место общения программистов C#
Anonymous
Ответ на внешний http-запрос C# как потоковый ответ API

Сообщение Anonymous »

Нашему веб-API ASP.NET Core необходимо запрашивать данные из внешней веб-службы (и нет, внешнюю веб-службу нельзя вызвать непосредственно из клиента) и возвращать их клиенту без изменений.
В настоящее время обработчик API считывает все данные (XML) из внешнего запроса в память, а затем возвращает строку в качестве данных для конечной точки (см. пример).
Примечание: код упрощен, поэтому многие проверки успешности запроса и аутентификации не учитываются

Код: Выделить всё

public async Task GetRemoteData(CancellationToken cancellationToken)
{
var xmlResponse = await response.Content.ReadAsStringAsync(cancellationToken);
return Ok(xmlResponse);
}
Но иногда ответ может стать довольно большим (несколько МБ), поэтому мы предпочитаем не загружать весь ответ в память, а позволить ему «потокиться» из внешнего запроса в качестве ответа на наш вызов API.
Есть ли у кого-нибудь подсказки, с чего мне следует начать?
Я читал эти сообщения, но не вижу способа реализовать их без создания файла или выделения памяти для хранения всех данных (что Я стараюсь этого не делать):
  • Могу ли я напрямую осуществлять потоковую передачу из HttpResponseMessage в файл, минуя память?
  • Как сохранить потоковые данные из внешнего запроса GET в .NET


Подробнее здесь: https://stackoverflow.com/questions/798 ... i-response

Вернуться в «C#»