send method
Implementation
@override
Future<HttpResponseData> send(HttpRequestData request, {DRCancelToken? cancel}) {
return _guard(request.timeoutMs, cancel, (track) async {
final req = await _client.openUrl(request.method, request.url);
track(req);
req.followRedirects = request.followRedirects;
request.headers.forEach(req.headers.set);
final body = request.body;
if (body != null) {
req.contentLength = body.length;
req.add(body);
} else if (request.method != 'GET') {
req.contentLength = 0;
}
final response = await req.close();
final bytes = await response.fold<BytesBuilder>(BytesBuilder(copy: false), (b, chunk) => b..add(chunk));
return HttpResponseData(status: response.statusCode, headers: _headers(response.headers), body: bytes.takeBytes());
});
}