update ios project
update ios project
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
/// 自定义异常
|
||||
class DioHttpException implements Exception {
|
||||
final String? message;
|
||||
final int? code;
|
||||
|
||||
DioHttpException([
|
||||
this.code,
|
||||
this.message,
|
||||
]);
|
||||
|
||||
String toString() {
|
||||
return "$code$message";
|
||||
}
|
||||
|
||||
factory DioHttpException.create(DioException error) {
|
||||
switch (error.type) {
|
||||
case DioExceptionType.unknown:
|
||||
{
|
||||
// 网络异常
|
||||
return BadRequestException(-2, "无网络");
|
||||
}
|
||||
|
||||
case DioErrorType.cancel:
|
||||
{
|
||||
return BadRequestException(-1, "请求取消");
|
||||
}
|
||||
|
||||
case DioErrorType.connectionTimeout:
|
||||
{
|
||||
return BadRequestException(-1, "连接超时");
|
||||
}
|
||||
|
||||
case DioErrorType.sendTimeout:
|
||||
{
|
||||
return BadRequestException(-1, "请求超时");
|
||||
}
|
||||
|
||||
case DioErrorType.receiveTimeout:
|
||||
{
|
||||
return BadRequestException(-1, "响应超时");
|
||||
}
|
||||
|
||||
case DioErrorType.badResponse:
|
||||
{
|
||||
try {
|
||||
int? errCode = error.response!.statusCode;
|
||||
switch (errCode) {
|
||||
case 400:
|
||||
{
|
||||
String? msgOf400;
|
||||
try {
|
||||
msgOf400 = error.response!.data["message"];
|
||||
} on Exception catch (e) {
|
||||
print('****** 400 exception: $e');
|
||||
}
|
||||
return BadRequestException(errCode, msgOf400 ?? "请求语法错误");
|
||||
}
|
||||
|
||||
case 401:
|
||||
{
|
||||
return UnauthorisedException(errCode, "没有权限");
|
||||
}
|
||||
|
||||
case 403:
|
||||
{
|
||||
return UnauthorisedException(errCode, "服务器拒绝执行");
|
||||
}
|
||||
|
||||
case 404:
|
||||
{
|
||||
return UnauthorisedException(errCode, "无法连接服务器");
|
||||
}
|
||||
|
||||
case 405:
|
||||
{
|
||||
return UnauthorisedException(errCode, "请求方法被禁止");
|
||||
}
|
||||
|
||||
case 500:
|
||||
{
|
||||
return UnauthorisedException(
|
||||
errCode, error.response?.statusMessage ?? "服务器内部错误");
|
||||
}
|
||||
|
||||
case 502:
|
||||
{
|
||||
return UnauthorisedException(errCode, "无效的请求");
|
||||
}
|
||||
|
||||
case 503:
|
||||
{
|
||||
return UnauthorisedException(errCode, "服务器挂了");
|
||||
}
|
||||
|
||||
case 505:
|
||||
{
|
||||
return UnauthorisedException(errCode, "不支持HTTP协议请求");
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return DioHttpException(
|
||||
errCode, error.response?.statusMessage);
|
||||
}
|
||||
}
|
||||
} on Exception catch (_) {
|
||||
return DioHttpException(-1, "未知错误");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
return DioHttpException(-1, error.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// 请求错误
|
||||
class BadRequestException extends DioHttpException {
|
||||
BadRequestException([int? code, String? message]) : super(code, message);
|
||||
}
|
||||
|
||||
/// 未认证异常
|
||||
class UnauthorisedException extends DioHttpException {
|
||||
UnauthorisedException([int? code, String? message]) : super(code, message);
|
||||
}
|
||||
Reference in New Issue
Block a user