HttpError.dioError constructor
HttpError.dioError(
- DioException dioException
处理dio报错
Implementation
HttpError.dioError(DioException dioException) {
cause = dioException;
switch (dioException.type) {
case DioExceptionType.connectionTimeout:
case DioExceptionType.receiveTimeout:
case DioExceptionType.sendTimeout:
errorType = ViewErrorType.timeOutError;
logMsg = '请求超时';
message = ErrorTextConfig().getViewErrorByType(errorType);
break;
case DioExceptionType.badResponse:
errorType = ViewErrorType.responseError;
try {
int errCode = dioException.response?.statusCode ?? 200;
code = errCode;
switch (errCode) {
case 400:
logMsg = '400请求语法错误';
break;
case 401:
logMsg = '401没有权限';
errorType = ViewErrorType.tokenError;
break;
case 403:
logMsg = '403服务器拒绝执行';
break;
case 404:
logMsg = '404无法连接服务器';
break;
case 405:
logMsg = '405请求方法被禁止';
break;
case 500:
logMsg = '500服务器内部错误';
break;
case 502:
logMsg = '502无效的请求';
break;
case 503:
logMsg = '503服务器挂了';
break;
case 505:
logMsg = '505不支持HTTP协议请求';
break;
default:
logMsg = dioException.response?.statusMessage ?? "";
}
message = ErrorTextConfig().getViewErrorByType(errorType) +
errCode.toString();
} on Exception catch (_) {
logMsg = '未知错误';
}
break;
case DioExceptionType.cancel:
errorType = ViewErrorType.cancelError;
message = ErrorTextConfig().getViewErrorByType(errorType);
logMsg = ErrorTextConfig().getViewErrorByType(errorType);
break;
case DioExceptionType.connectionError:
if (dioException.error is SocketException) {
///网络请求失败
errorType = ViewErrorType.netWorkError;
message = ErrorTextConfig().getViewErrorByType(errorType);
} else {
errorType = ViewErrorType.unknown;
message =
'${ErrorTextConfig().getViewErrorByType(errorType)}: ${dioException.error}';
}
break;
case DioExceptionType.unknown:
HttpError httpError = HttpError.unknown();
errorType = httpError.errorType;
message = httpError.message;
logMsg = httpError.logMsg;
break;
case DioExceptionType.badCertificate:
errorType = ViewErrorType.sslError;
message = ErrorTextConfig().getViewErrorByType(errorType);
break;
default:
HttpError httpError = HttpError.unknown();
errorType = httpError.errorType;
message = httpError.message;
logMsg = httpError.logMsg;
}
}