Чтобы установить тайм-аут HTTP-запросов Flutter, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько подходов с примерами кода:
Метод 1: использование параметра timeout
в методах get
или post
:
import 'package:http/http.dart' as http;
void makeRequest() async {
try {
final response = await http.get(
'https://example.com/api/data',
timeout: Duration(seconds: 10), // Set the timeout duration
);
// Process the response
} catch (e) {
// Handle timeout or other errors
}
}
Метод 2. Создание пользовательского IOClient
с указанным тайм-аутом:
import 'package:http/http.dart' as http;
import 'package:http/io_client.dart' as http_io;
void makeRequest() async {
final ioClient = http_io.IOClient();
ioClient.timeout = Duration(seconds: 10); // Set the timeout duration
try {
final response = await ioClient.get('https://example.com/api/data');
// Process the response
} catch (e) {
// Handle timeout or other errors
} finally {
ioClient.close();
}
}
Метод 3. Использование пакета Dio
, который предоставляет более продвинутые функции:
import 'package:dio/dio.dart';
void makeRequest() async {
final dio = Dio();
dio.options.connectTimeout = 10000; // Set the connection timeout in milliseconds
dio.options.receiveTimeout = 10000; // Set the receive timeout in milliseconds
try {
final response = await dio.get('https://example.com/api/data');
// Process the response
} catch (e) {
// Handle timeout or other errors
} finally {
dio.close();
}
}
Это всего лишь несколько примеров того, как вы можете установить таймауты запросов во Flutter для HTTP-запросов. Не забудьте настроить продолжительность тайм-аута в соответствии с вашим конкретным вариантом использования.