Timeout
Timeout у
HttpClient
по умолчанию равен 100 секундам.
TimeSpan.Zero при присваивании
даёт ArgumentOutOfRangeException.
Синтаксис
client.Timeout = TimeSpan.FromSeconds(5);
Пример
Давайте проверить значение по умолчанию:
using System;
using System.Net.Http;
class Program
{
static void Main()
{
using HttpClient client = new HttpClient();
bool res = client.Timeout.TotalSeconds == 100;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте задать пять секунд:
using System;
using System.Net.Http;
class Program
{
static void Main()
{
using HttpClient client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(5);
double res = client.Timeout.TotalSeconds;
Console.WriteLine(res);
}
}
Результат выполнения кода:
5
Пример
Давайте поймаем нулевой таймаут:
using System;
using System.Net.Http;
class Program
{
static void Main()
{
using HttpClient client = new HttpClient();
try
{
client.Timeout = TimeSpan.Zero;
}
catch (ArgumentOutOfRangeException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Смотрите также
-
CancelPendingRequests,
отмена запросов -
GetAsync,
ожидание ответа -
Dispose,
закрытие клиента -
HttpClient,
класс клиента