flutter/lib/service/http.dart

73 lines
1.8 KiB
Dart
Raw Normal View History

2025-07-21 15:46:30 +08:00
import 'package:dio/dio.dart';
2025-08-21 10:50:38 +08:00
import 'package:loopin/IM/push_service.dart';
2025-07-21 15:46:30 +08:00
import 'http_config.dart';
class Http {
static Dio get _dio => HttpConfig.dio;
static Future<dynamic> get(String url, {Map<String, dynamic>? params, Map<String, dynamic>? headers}) async {
final res = await _dio.get(
url,
queryParameters: params,
options: Options(extra: headers ?? {}),
);
return res.data;
}
static Future<dynamic> post(String url, {dynamic data, Map<String, dynamic>? headers}) async {
2025-08-21 10:50:38 +08:00
try {
final res = await _dio.post(
url,
data: data,
options: Options(extra: headers ?? {}),
);
return res.data;
} catch (e) {
logger.e('$e--------$url');
}
2025-07-21 15:46:30 +08:00
}
static Future<dynamic> put(String url, {dynamic data, Map<String, dynamic>? headers}) async {
final res = await _dio.put(
url,
data: data,
options: Options(extra: headers ?? {}),
);
return res.data;
}
static Future<dynamic> delete(String url, {dynamic data, Map<String, dynamic>? headers}) async {
final res = await _dio.delete(
url,
data: data,
options: Options(extra: headers ?? {}),
);
return res.data;
}
static Future<dynamic> upload(String url,
{required String filePath,
String fileKey = 'file',
Map<String, dynamic>? data,
Map<String, dynamic>? headers,
Function(int sent, int total)? onSendProgress}) async {
FormData formData = FormData.fromMap({
fileKey: await MultipartFile.fromFile(filePath),
if (data != null) ...data,
});
final res = await _dio.post(
url,
data: formData,
onSendProgress: onSendProgress,
options: Options(
contentType: 'multipart/form-data',
extra: headers ?? {},
),
);
return res.data;
}
}