mod: 样式、dio异常处理

This commit is contained in:
guozhigq
2023-05-09 14:39:52 +08:00
parent f3b57bfe7b
commit 04668b3591
29 changed files with 469 additions and 342 deletions

View File

@ -111,7 +111,7 @@ class Request {
return response;
} on DioError catch (e) {
print('get error: $e');
return Future.error(ApiInterceptor.dioError(e));
return Future.error(await ApiInterceptor.dioError(e));
}
}
@ -132,7 +132,7 @@ class Request {
return response;
} on DioError catch (e) {
print('post error: $e');
return Future.error(ApiInterceptor.dioError(e));
return Future.error(await ApiInterceptor.dioError(e));
}
}

View File

@ -1,10 +1,12 @@
import 'package:dio/dio.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart' hide Response;
class ApiInterceptor extends Interceptor {
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
// print("请求之前");
print("请求之前");
// 在请求之前添加头部或认证信息
// options.headers['Authorization'] = 'Bearer token';
// options.headers['Content-Type'] = 'application/json';
@ -13,15 +15,14 @@ class ApiInterceptor extends Interceptor {
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
// print("响应之前");
handler.next(response);
}
@override
void onError(DioError err, ErrorInterceptorHandler handler) {
void onError(DioError err, ErrorInterceptorHandler handler) async {
// 处理网络请求错误
handler.next(err);
// handler.next(err);
SmartDialog.showToast(await dioError(err));
super.onError(err, handler);
}
@ -43,7 +44,7 @@ class ApiInterceptor extends Interceptor {
return "发送请求超时,请检查网络设置";
case DioErrorType.unknown:
var res = await checkConect();
return "$res 网络异常,请稍后重试!";
return res + " \n 网络异常,请稍后重试!";
default:
return "Dio异常";
}

View File

@ -1,5 +1,6 @@
import 'package:pilipala/http/api.dart';
import 'package:pilipala/http/init.dart';
import 'package:pilipala/models/user/info.dart';
class UserHttp {
static Future<dynamic> userStat({required int mid}) async {
@ -14,7 +15,8 @@ class UserHttp {
static Future<dynamic> userInfo() async {
var res = await Request().get(Api.userInfo);
if (res.data['code'] == 0) {
return {'status': true, 'data': res.data['data']};
UserInfoData data = UserInfoData.fromJson(res.data['data']);
return {'status': true, 'data': data};
} else {
return {'status': false};
}

View File

@ -11,39 +11,47 @@ import 'package:pilipala/models/video_detail_res.dart';
class VideoHttp {
// 首页推荐视频
static Future rcmdVideoList({required int ps, required int freshIdx}) async {
var res = await Request().get(
Api.recommendList,
data: {
'feed_version': 'V3',
'ps': ps,
'fresh_idx': freshIdx,
},
);
if (res.data['code'] == 0) {
List<RecVideoItemModel> list = [];
for (var i in res.data['data']['item']) {
list.add(RecVideoItemModel.fromJson(i));
try {
var res = await Request().get(
Api.recommendList,
data: {
'feed_version': 'V3',
'ps': ps,
'fresh_idx': freshIdx,
},
);
if (res.data['code'] == 0) {
List<RecVideoItemModel> list = [];
for (var i in res.data['data']['item']) {
list.add(RecVideoItemModel.fromJson(i));
}
return {'status': true, 'data': list};
} else {
return {'status': false, 'data': []};
}
return {'status': true, 'data': list};
} else {
return {'status': false, 'data': []};
} catch (err) {
return {'status': false, 'data': [], 'msg': err};
}
}
// 最热视频
static Future hotVideoList({required int pn, required int ps}) async {
var res = await Request().get(
Api.hotList,
data: {'pn': pn, 'ps': ps},
);
if (res.data['code'] == 0) {
List<HotVideoItemModel> list = [];
for (var i in res.data['data']['list']) {
list.add(HotVideoItemModel.fromJson(i));
try {
var res = await Request().get(
Api.hotList,
data: {'pn': pn, 'ps': ps},
);
if (res.data['code'] == 0) {
List<HotVideoItemModel> list = [];
for (var i in res.data['data']['list']) {
list.add(HotVideoItemModel.fromJson(i));
}
return {'status': true, 'data': list};
} else {
return {'status': false, 'data': []};
}
return {'status': true, 'data': list};
} else {
return {'status': false, 'data': []};
} catch (err) {
return {'status': false, 'data': [], 'msg': err};
}
}