Ответ на внешний 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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