Отправить POST запрос не ожидая ответ, но получив поток ответа C#

Рейтинг: 1Ответов: 1Опубликовано: 02.02.2023

Мне надо отправить POST запрос, при этом сразу же получить поток данного ответа, желательно через HttpRequestMessage, но не обязательно.

Как я понял сейчас он ожидает ответ от сервера

А мне бы хотелось сразу же получить Stream объект ответа

Заранее спасибо

Ответы

▲ 4Принят

Используйте опцию HttpCompletionOption.ResponseHeadersRead.

private static readonly HttpClient client = new();
public async Task<Stream> PostAsync(string url)
{
    using HttpRequestMessage request = new(HttpMethod.Post, url);
    request.Content = ...; // контент для отправки
    using HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
    return await response.Content.ReadAsStreamAsync().ConfigureAwait(false);
}
Stream responseStream = await PostAsync(url);