import 'package:dio/dio.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'auth_interceptor.dart'; import 'nw_method.dart'; class DioManager { static final DioManager _shared = DioManager._internal(); factory DioManager() => _shared; late Dio dio; final baseUrl = dotenv.env['SERVER_URL'] ?? ""; DioManager._internal() { BaseOptions options = BaseOptions( baseUrl: baseUrl, contentType: Headers.jsonContentType, responseType: ResponseType.json, connectTimeout: const Duration(seconds: 30), receiveTimeout: const Duration(seconds: 30), ); dio = Dio(options); dio.interceptors.add(AuthInterceptor()); } // 请求,返回参数为 T // method:请求方法,NWMethod.POST等 // path:请求地址 // params:请求参数 Future request( NWMethod method, String path, { Object? params, Map? queryParameters, }) async { Response response = await dio.request( path, data: params, queryParameters: queryParameters, options: Options(method: nwMethodValues[method]), ); return response.data; } }