first commit

This commit is contained in:
编码猿
2024-09-27 01:32:49 +08:00
commit 28ebe05a64
7399 changed files with 1174529 additions and 0 deletions

View File

@@ -0,0 +1 @@
309b08e0-77ec-4285-a1e6-d600bdbbe007

View File

@@ -0,0 +1,85 @@
import 'package:bot_toast/bot_toast.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:peach/config/_.dart';
import 'package:peach/utils/_.dart';
import 'package:toast/toast.dart';
class ResponseData {
String code;
String message;
dynamic data;
}
/// 单例模式封装 dio
class HttpApi {
Dio _Dio;
static HttpApi _instance = HttpApi.instance();
factory HttpApi() => _instance;
HttpApi.instance() {
SPreferences.init();
if (null == _Dio) {
BaseOptions options = new BaseOptions(
baseUrl: Config.ApiUrl['PhotoBaseUrl'],
connectTimeout: 30000,
contentType: 'application/json; charset=utf-8',
responseType: ResponseType.json,
);
_Dio = new Dio(options);
_Dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) {
// print(SPreferences().getString("token"));
// options.headers
options.headers.putIfAbsent("token", () => SPreferences().getString("token"));
// 请求拦截器
return options;
}, onResponse: (Response response) {
// 因为 downloadFile 下载apk方法被响应拦截器拦截了所以这里需要对下载的
// 响应头进行判断,如果是阿里云,则不进行状态码的判断
if (response.headers.value("server") == "AliyunOSS") {
return response;
} else {
switch (response.data["code"]) {
case 404:
// BotToast.showText(text: response.data["message"]);
return response;
case 100:
return response;
case 500:
BotToast.showText(text: response.data["message"]);
throw response.data["message"];
default:
return response;
}
}
}, onError: (DioError e) {
print("网络请求出现错误 ====== ${e.message}");
// 错误拦截器
return e;
}));
}
}
/// GET 请求
Future get({@required String url, Options options, dynamic params}) async {
Response res =
await _Dio.get(url, queryParameters: params, options: options);
return res.data;
}
/// POST 请求
Future post({@required String url, Options options, dynamic params}) async {
Response res = await _Dio.post(url, data: params, options: options);
return res.data;
}
/// 下载文件
Future downloadFile(String urlPath, String savePath, {ProgressCallback onReceiveProgress}) async {
Response response = await _Dio.download(urlPath, savePath,
onReceiveProgress: onReceiveProgress,
options: Options(sendTimeout: 25000, receiveTimeout: 25000));
return response;
}
}