will-play/lib/utils/http_util.dart

101 lines
3.1 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: 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<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;
}
}
}