get method

Future get(
  1. String path, {
  2. Map<String, dynamic>? queryParameters,
  3. bool infiniteTimeout = false,
  4. Map<String, dynamic>? header,
})

Implementation

Future<dynamic> get(String path, {Map<String, dynamic>? queryParameters,
  bool infiniteTimeout = false, Map<String, dynamic>? header,}) async {
  try {
    // Backup current timeout settings
    final originalConnectTimeout = _dio.options.connectTimeout;
    final originalReceiveTimeout = _dio.options.receiveTimeout;

    // Apply infinite timeout if requested
    if (infiniteTimeout) {
      _dio.options.connectTimeout = Duration.zero; // 0 = infinite
      _dio.options.receiveTimeout = Duration.zero;
    }

    Options? requestOptions;

    if(header != null) {
      requestOptions = Options(
        extra: {
          "header": header,
        },
      );
    }

    final encodedParams = queryParameters;

    final uri = Uri.parse(UFUtils.baseUrl + path).replace(queryParameters: encodedParams);

    final response = await _dio.getUri(uri, options: requestOptions);

    // Restore original timeout settings
    if (infiniteTimeout) {
      _dio.options.connectTimeout = originalConnectTimeout;
      _dio.options.receiveTimeout = originalReceiveTimeout;
    }

    return response.data;
  } catch (e) {
    rethrow;
  }
}