HttpException.create constructor
HttpException.create(
- DioError error
Implementation
factory HttpException.create(DioError error) {
switch (error.type) {
case DioErrorType.cancel:
return BadRequestException(-1, "请求取消");
case DioErrorType.connectTimeout:
return BadRequestException(-1, "连接超时");
case DioErrorType.sendTimeout:
return BadRequestException(-1, "请求超时");
case DioErrorType.receiveTimeout:
return BadRequestException(-1, "响应超时");
case DioErrorType.response:
{
try {
int? errCode = error.response?.statusCode ?? -1;
switch (errCode) {
case 400:
return BadRequestException(errCode, "请求语法错误");
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, "服务器内部错误");
case 502:
return UnauthorisedException(errCode, "无效的请求");
case 503:
return UnauthorisedException(errCode, "服务器挂了");
case 505:
return UnauthorisedException(errCode, "不支持HTTP协议请求");
default:
return HttpException(
code: errCode,
message: error.response?.statusMessage ?? "未知错误");
}
} on Exception catch (_) {
return HttpException(code: -1, message: "未知错误");
}
}
default:
{
return HttpException(code: -1, message: error.message);
}
}
}