init method
Implementation
Dio init() {
var dio = Dio();
dio.options.baseUrl = baseURL;
dio.options.connectTimeout = connectTimeout ?? 120.seconds;
dio.options.receiveTimeout = receiveTimeout ?? 120.seconds;
dio.options.headers = headers;
if (useCache) {
if (!kIsWeb) {
dio.interceptors.add(cacheInterceptor(
maxStale: maxStaleCache, hitCacheOnErrorExcept: hitCacheOnErrorExcept));
}
}
if (showLogging) {
dio.interceptors.add(PrettyDioLogger(
requestHeader: true,
requestBody: true,
responseBody: true,
responseHeader: false,
error: true,
compact: true,
maxWidth: 90,
enabled: kDebugMode,
request: true,
filter: (options, args) {
if (handleFilterLog != null) {
handleFilterLog!(options, args);
}
// don't print responses with unit8 list data
return !args.isResponse || !args.hasUint8ListData;
}));
}
dio.interceptors.add(ApiInterceptors(
handleOnRequest: handleOnRequest ?? (value) {},
handleResponse: handleOnResponse ?? (value) {},
showLogging: showLogging,
handleOnError: handleOnError ?? (_, __) {},
handleWhenUnauthorized: handleWhenUnauthorized ?? () {}));
return dio;
}