instance static method
returns a new Dio instance configured with some basic features
Implementation
static Dio instance(
PreferencesService preferences,
{
/// if this is set to true, then all status errors will lead to a success
/// in the Future execution. By default, only statuses between 200 and 300
/// are considered as success.
/// See. https://github.com/cfug/dio/blob/87e6b1d4c8f9d3c57dd2291f540b730b510f4b20/dio/lib/src/options.dart#L633
bool disableStatusesErrors = false,
Duration? connectTimeout = const Duration(seconds: 30),
Duration? sendTimeout = const Duration(seconds: 50),
Duration? receiveTimeout,
/// use this to override the default server link obtained from [Links]
String? baseUrl
}
) {
log('running on: ${baseUrl ?? Links.instance.server}');
final dio = Dio()
..options.baseUrl = baseUrl?? Links.instance.server
..options.connectTimeout = connectTimeout
..options.sendTimeout = sendTimeout
..options.receiveTimeout = receiveTimeout
..options.headers['Accept'] = 'application/json'
..interceptors.add(_AuthorizationInterceptor(preferences))
..interceptors.add(const _LogInterceptor());
if (disableStatusesErrors) {
dio.options.validateStatus = (_) => true;
}
return dio;
}