send method
Sends request and buffers the whole response body in memory.
Implementation
@override
Future<RawHttpResponse> send(RawHttpRequest request) async {
final binding = _Binding(request.cancellationToken);
try {
final options = await _compose(request, binding, ResponseType.bytes);
final response = await _dio.fetch<Object>(options);
final statusCode = _requireStatus(response, request.uri);
final data = response.data;
return RawHttpResponse(
statusCode: statusCode,
headers: _copyHeaders(response.headers.map),
bodyBytes: data is List<int> ? data : const [],
redirected: _followedRedirect(
statusCode,
isRedirect: response.isRedirect,
redirectCount: response.redirects.length,
),
);
} on DioException catch (error) {
throw _toRawException(error, request.uri);
} finally {
binding.release();
}
}