HttpError.dioError constructor

HttpError.dioError(
  1. Exception error
)

Implementation

factory HttpError.dioError(Exception error) {
  if (error is DioError) {
    switch (error.type) {
      case DioErrorType.connectTimeout:
      case DioErrorType.receiveTimeout:
      case DioErrorType.sendTimeout:
        return HttpError.timeout(error.message);
      case DioErrorType.cancel:
        return HttpError.cancel(error.message);
      case DioErrorType.response:
        int code = error.response?.statusCode ?? 0;
        switch (code) {
          case 400:
            return HttpError.request(code, '请求报文存在语法错误');
          case 401:
            return HttpError.request(code, '没有权限');
          case 403:
            return HttpError.request(code, '服务器拒绝执行');
          case 404:
            return HttpError.request(code, '无法连接服务器');
          case 405:
            return HttpError.request(code, '请求方法被禁止');
          case 500:
            return HttpError.badServer(code, '服务器内部错误');
          case 501:
            return HttpError.badServer(code, '服务器不支持当前请求');
          case 502:
            return HttpError.badServer(code, '无效请求');
          case 503:
            return HttpError.badServer(code, '服务器挂了');
          case 505:
            return HttpError.badServer(code, '不支持的HTTP版本');
          default:
            return HttpError.unknown(error.message);
        }
      default:
        return HttpError.unknown(error.message);
    }
  } else {
    return HttpError.unknown(error.toString());
  }
}