Skip to content

Instantly share code, notes, and snippets.

@dev4jam
Created March 21, 2022 06:47
Show Gist options
  • Save dev4jam/3fc1734f5c4ecf676f71831ea13eb50b to your computer and use it in GitHub Desktop.
Save dev4jam/3fc1734f5c4ecf676f71831ea13eb50b to your computer and use it in GitHub Desktop.
Execute request
try {
final response = await _dio!.request(
request.path,
data: body,
queryParameters: request.queryParams,
options: Dio.Options(
method: request.type.name,
headers: {..._headers, ...(request.headers ?? {})}, // Combine all headers
),
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return NetworkResponse.ok(parser(response.data));
} on DioError catch (error) {
final errorText = error.toString();
if (error.requestOptions.cancelToken!.isCancelled) {
return NetworkResponse.noData(errorText);
}
switch (error.response?.statusCode) {
case 400:
return NetworkResponse.badRequest(errorText);
case 401:
return NetworkResponse.noAuth(errorText);
case 403:
return NetworkResponse.noAccess(errorText);
case 404:
return NetworkResponse.notFound(errorText);
case 409:
return NetworkResponse.conflict(errorText);
default:
return NetworkResponse.noData(errorText);
}
} catch (error) {
return NetworkResponse.noData(error.toString());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment