Flutter 如何将Alice库添加到Flatter项目?
我最近开始学习Flitter,之前曾使用本地语言,即kotlin编程语言。我用了一把夹头。现在有一个alice图书馆供Flatter使用。但在这种情况下我很惊讶这么做。请注意,任何反馈对我都是有价值的 主飞镖 服务路线:黑暗Flutter 如何将Alice库添加到Flatter项目?,flutter,flutter-dependencies,Flutter,Flutter Dependencies,我最近开始学习Flitter,之前曾使用本地语言,即kotlin编程语言。我用了一把夹头。现在有一个alice图书馆供Flatter使用。但在这种情况下我很惊讶这么做。请注意,任何反馈对我都是有价值的 主飞镖 服务路线:黑暗 RouteService RouteService=RouteService(); 类路由服务{ 静态最终字符串baseUrl=”http://my-service:8080/api/"; 最终Dio_Dio=Dio(); final HiveDB_HiveDB=locat
RouteService RouteService=RouteService();
类路由服务{
静态最终字符串baseUrl=”http://my-service:8080/api/";
最终Dio_Dio=Dio();
final HiveDB_HiveDB=locator.get();
未来请求({
必需的字符串url,
String方法='GET',
动态数据,
地图?标题,
int超时=60000,
})异步的{
试一试{
最终地图主标题={
“令牌”:wait_hiveDB.getToken()
};
if(headers!=null)mainHeader.addAll(headers);
响应=等待请求(
“$baseUrl$url”,
选项:选项(
标题:mainHeader,
方法:方法,,
sendTimeout:超时,
receiveTimeout:超时,
validateStatus:(状态)=>状态==200,
),
数据:数据,
);
返回_getResponseModel(响应);
}关于错误捕获(e){
返回ResponseModel.fail(消息:e.response!.data);
}捕获(e){
返回ResponseModel.fail(消息:$e);
}
}
ResponseModel\u getResponseModel(响应){
if(response.statusCode==200&&response.data!=null)
返回ResponseModel.fromJson(response.data);
return ResponseModel.empty();
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SystemImp.setStatus();
return MaterialApp(
title: "App",
debugShowCheckedModeBanner: false,
theme: ThemeData(
primaryColor: MyColors.orangeAccent,
accentColor: MyColors.orangeAccent,
),
home: SplashScreen.screen(),
);
}
}
RouteService routeService = RouteService();
class RouteService {
static final String baseUrl = "http://my-service:8080/api/";
final Dio _dio = Dio();
final HiveDB _hiveDB = locator.get();
Future<ResponseModel> request({
required String url,
String method = 'GET',
dynamic data,
Map<String, dynamic>? headers,
int timeOut = 60000,
}) async {
try {
final Map<String, dynamic> mainHeader = {
"token": await _hiveDB.getToken()
};
if (headers != null) mainHeader.addAll(headers);
Response response = await _dio.request(
"$baseUrl$url",
options: Options(
headers: mainHeader,
method: method,
sendTimeout: timeOut,
receiveTimeout: timeOut,
validateStatus: (status) => status == 200,
),
data: data,
);
return _getResponseModel(response);
} on DioError catch (e) {
return ResponseModel.fail(message: e.response!.data);
} catch (e) {
return ResponseModel.fail(message: "$e");
}
}
ResponseModel _getResponseModel(Response response) {
if (response.statusCode == 200 && response.data != null)
return ResponseModel.fromJson(response.data);
return ResponseModel.empty();
}
}