import 'dart:convert'; import 'dart:developer'; import 'package:dio/dio.dart'; import 'package:dio_http_cache/dio_http_cache.dart'; import 'package:farm_tpf/utils/const_common.dart'; import 'package:farm_tpf/utils/pref.dart'; class DioProvider { static Dio instance() { final dio = Dio(); // dio.interceptors.add(AuthInterceptor()); dio.interceptors.add(HttpLogInterceptor()); dio.interceptors.add( DioCacheManager(CacheConfig(baseUrl: ConstCommon.baseUrl)).interceptor); return dio; } } class HttpLogInterceptor extends InterceptorsWrapper { var pref = LocalPref(); @override Future onRequest(RequestOptions options) async { var token = await pref.getString(DATA_CONST.TOKEN_KEY); options.headers["Authorization"] = "Bearer $token"; options.receiveTimeout = 20000; // log("onRequest: ${options.uri}\n" // "data=${options.data}\n" // "method=${options.method}\n" // "headers=${options.headers}\n" // "queryParameters=${options.queryParameters}"); return options; } @override Future onResponse(Response response) { log("onResponse: $response"); return super.onResponse(response); } @override Future onError(DioError err) { log("onError: $err\n" "Response: ${err.response}"); return super.onError(err); } }