Стандартная потребность — установить свой таймаут при выполнении HTTP-запросов целиком на всё приложение.
flutter позволяет сделать это быстро и красиво, за счет переопределения метода создания экземпляра HTTP-клиента.
При этом все запросы, выполняемые приложением (даже в подключаемых внешних package/lib), будут использовать установленное значение таймаута.
Например, требуется задать таймаут 30 секунд. Последовательность следующая:
1. Переопределяем метод создания HTTP-клиента.
import 'dart:io';
class AppHttpOverrides extends HttpOverrides {
@override
HttpClient createHttpClient(SecurityContext? context) {
return super.createHttpClient(context)
..connectionTimeout = const Duration(seconds: 30);
}
}
2. Прописываем переопределенный метод при старте приложения.
void main() async {
HttpOverrides.global = new AppHttpOverrides();
...
}
Все запросы, выполняемые приложением, будут отрабатывать с таймаутом 30 секунд.
Готово!