99 lines
3.0 KiB
Dart
99 lines
3.0 KiB
Dart
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<String, dynamic>? header}) {
|
|
Map<String, dynamic> defaultHeader = {
|
|
"Accept": "application/json",
|
|
"Content-Type": "application/json;charset=UTF-8",
|
|
// "Authorization": getToken() ? 'Bearer $getToken()' : null
|
|
};
|
|
options = dioplugn.BaseOptions(
|
|
connectTimeout: 15000,
|
|
receiveTimeout: 3000,
|
|
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<ResponseModel> 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<ResponseModel> 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;
|
|
}
|
|
}
|
|
}
|