Установка таймаута запроса для HTTP-запросов Flutter: несколько методов с примерами кода

Чтобы установить тайм-аут 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-запросов. Не забудьте настроить продолжительность тайм-аута в соответствии с вашим конкретным вариантом использования.