import 'package:dio/dio.dart' as dioplugn; import 'package:pretty_dio_logger/pretty_dio_logger.dart'; import './response_model.dart'; import './auth.dart'; class MyHttpUtil { late dioplugn.Dio dio; late dioplugn.BaseOptions options; MyHttpUtil({Map? header}) { Map defaultHeader = { "Accept": "application/json", "Content-Type": "application/json;charset=UTF-8", // "Authorization": getToken() ? 'Bearer $getToken()' : null }; options = dioplugn.BaseOptions( connectTimeout: 15000, // 连接超时 receiveTimeout: 15000, // baseUrl: 'http://192.118.2.93:9093', // baseUrl: 'http://HousedeMacBook-Air.local:9093', baseUrl: 'http://101.35.117.69:9093', headers: header ?? defaultHeader, ); dio = dioplugn.Dio(options); dio.interceptors.add(PrettyDioLogger( requestHeader: true, requestBody: true, responseBody: true, responseHeader: false, error: true, compact: true, maxWidth: 90)); } Future get(url, {data, cancelToken, bool analyze = true}) async { try { // dio.options.headers['Authorization'] = 'Bearer $getToken()'; var token = await Storage.get('token'); if (token != null) { dio.options.headers['Authorization'] = 'Bearer ${token}'; } dioplugn.Response response = await dio.get(url, queryParameters: data, cancelToken: cancelToken); int code = -1; String msg = "数据请求失败"; dynamic resData; ///如果返回的data 是String 类型失败处理 if (response.statusCode == 200 && response.data.runtimeType.toString() != "String") { return ResponseModel.fromJson(response.data); } else { return ResponseModel(code: code, message: msg, data: resData); } } on dioplugn.DioError catch (e) { // ToastUtil.closeLoading(); return ResponseModel(code: -1, message: "网络加载失败", data: {}); // throw e.error; } } Future post(url, {data, options, cancelToken, Function(int, int)? onSendProgress, bool analyze = true}) async { try { // dio.options.headers['Authorization'] = 'Bearer $getToken()'; var token = await Storage.get('token'); if (token != null) { dio.options.headers['Authorization'] = 'Bearer ${token}'; } dioplugn.Response response = await dio.post( url, data: data, cancelToken: cancelToken, onSendProgress: onSendProgress, ); int code = -1; String msg = "msg"; dynamic resData; ///如果返回的data 是String 类型失败处理 if (response.statusCode == 200 && response.data.runtimeType.toString() != "String") { return ResponseModel.fromJson(response.data); } else { return ResponseModel(code: code, message: msg, data: resData); } } on dioplugn.DioError catch (e) { // printLog(e); // ToastUtil.closeLoading(); return ResponseModel(code: -1, message: "网络加载失败", data: {}); // throw e.error; } } }