send method
Sends the request
and returns the Response
Implementation
@override
Future<Response> send(Request request) async {
if (_isClosed) {
throw StateError('HTTP Client is already closed.');
}
_ongoingCount++;
Future? rsf;
Future? bf;
try {
rsf = _delegate.send(request);
_ongoingRequests.add(rsf);
final rs = await rsf;
bf = rs.done;
if (bf != null) {
_ongoingContents.add(bf);
// ignore: unawaited_futures
bf.whenComplete(() {
_ongoingContents.remove(bf);
_ongoingCount--;
_completedCount++;
});
}
return rs;
} finally {
_ongoingRequests.remove(rsf);
if (bf == null) {
_ongoingCount--;
_completedCount++;
}
}
}