提交 7eb509af authored 作者: shixiaochen's avatar shixiaochen

1、网络请求同步执行

上级 8a8ca8eb
......@@ -23,8 +23,9 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
children: [
Text(_result),
TextButton(
onPressed: () {
DioUtils.instance.request(
onPressed: () async {
debugPrint("=====11111");
DioUtils.instance.request(
requestUrl: getSystemVersionByNumber,
method: Method.get,
queryParameters: {
......@@ -32,16 +33,19 @@ class _DioWidgetTestState extends State<DioWidgetTest> {
'productNo': 1,
},
successCallback: (res) {
debugPrint("=====successCallback");
setState(() {
_result = '0000';
});
},
errorCallback: (code, msg) {
debugPrint("=====errorCallback");
setState(() {
_result = msg!;
});
},
);
debugPrint("=====22222");
},
child: const Text('dio请求')),
],
......
......@@ -52,9 +52,9 @@ abstract class BaseDio {
void onLoginExpire() => _onLoginExpire();
void onNetSuccess(Response response, NetSuccessCallback successCallback,
NetErrorCallback? errorCallback) =>
_onNetSuccess(response, successCallback, errorCallback);
Future<void> onNetSuccess(Response response, NetSuccessCallback successCallback,
NetErrorCallback? errorCallback) async =>
await _onNetSuccess(response, successCallback, errorCallback);
// 登录过期的处理
void _onLoginExpire() {
......@@ -80,7 +80,7 @@ abstract class BaseDio {
}
// 构建网络请求
void request({
Future<void> request({
required String requestUrl,
required Method method,
Options? options,
......@@ -96,7 +96,7 @@ abstract class BaseDio {
data: data,
options: _checkOptions(method.value, options),
);
onNetSuccess(response, successCallback, errorCallback);
await onNetSuccess(response, successCallback, errorCallback);
} on DioError catch (e) {
if (e.response != null) {
logger.e(
......@@ -105,13 +105,13 @@ abstract class BaseDio {
// Something happened in setting up or sending the request that triggered an Error
logger.e("请求错误:${e.error}");
}
errorCallback?.call(500, "服务器请求错误");
await errorCallback?.call(500, "服务器请求错误");
}
}
// 处理网络请求成功逻辑
void _onNetSuccess(Response response, NetSuccessCallback successCallback,
NetErrorCallback? errorCallback) {
Future<void> _onNetSuccess(Response response, NetSuccessCallback successCallback,
NetErrorCallback? errorCallback) async {
BaseEntity baseEntity = BaseEntity.fromJson(response.data);
if (baseEntity.code == 100 || baseEntity.code == "100") {
logger.e("登录过期:${baseEntity.message}");
......@@ -120,10 +120,10 @@ abstract class BaseDio {
}
if (baseEntity.code == 0) {
successCallback.call(baseEntity.data);
await successCallback.call(baseEntity.data);
} else {
logger.e("请求错误:${baseEntity.code} ${baseEntity.message}");
errorCallback?.call(baseEntity.code, baseEntity.message);
await errorCallback?.call(baseEntity.code, baseEntity.message);
}
}
}
......
// ignore_for_file: depend_on_referenced_packages
import 'package:flutter/cupertino.dart';
import 'package:flutter_clx_base/flutter_clx_base.dart';
import 'package:flutter_clx_base/utils/log_utils.dart';
import 'package:permission_handler/permission_handler.dart';
class PermissionHelper {
static VoidCallback defaultCall = () {};
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论