Код: Выделить всё
using (HttpClient client = new HttpClient())
{
client.Timeout = TimeSpan.FromSeconds(5);
const string url = "https://url";
using (HttpResponseMessage response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead))
using (Stream stream = await response.Content.ReadAsStreamAsync())
{
... do some processing on stream ...
}
}
- тайм-аут вызова client.GetAsync равен 5 с (из-за client. Таймаут = TimeSpan.FromSeconds(5))? и поскольку используется HttpCompletionOption.ResponseHeadersRead, client.GetAsync успешно завершается после загрузки заголовков
- клиент не влияет на обработку потока.Timeout = Конфигурация TimeSpan.FromSeconds(5)
- обработка потока не имеет тайм-аута/ограничения по времени (по крайней мере, на стороне клиента). поэтому даже для очень большого файла (скажем, 1 ГБ) теоретически обработка потока может занять несколько минут.
Извините, еще один вопрос по теме. Допустим, обработка потока состояла из вызова CopyTo:
Код: Выделить всё
await stream.CopyToAsync(destStream);
Подробнее здесь: https://stackoverflow.com/questions/688 ... eadersread
Мобильная версия