errorHandler method
HttpError
errorHandler(
- DioError err
)
override
Implementation
@override
HttpError errorHandler(DioError err) {
int statusCode = err.response?.statusCode ?? 0;
// classic error format
// {
// "code": int,
// "message": "Message string",
// "data": <AnyType>
// }
if (err.response?.data is Map<String, dynamic> &&
(err.response!.data as Map).containsKey(codeKey) &&
(err.response!.data as Map)[codeKey] is int &&
((err.response!.data as Map)[codeKey] as int) != successCode) {
return HttpError(
requestOptions: err.requestOptions,
response: err.response,
type: err.type,
error: err.error,
statusCode: statusCode,
errorCode: (err.response!.data as Map)[codeKey].toString(),
errorMessage:
(err.response!.data as Map)[messageKey]?.toString() ?? null,
errorData: (err.response!.data as Map)[dataKey] ??
(err.response!.data as Map)[dataKey],
);
}
// other format
return HttpError(
requestOptions: err.requestOptions,
response: err.response,
type: err.type,
error: err.error,
statusCode: statusCode,
errorCode: HttpErrorCode.unknownError,
errorMessage: null,
errorData: err.response?.data,
);
}