send method

  1. @override
Future<StreamedResponse> send(
  1. BaseRequest request
)
override

Sends an HTTP request and asynchronously returns the response.

Implementation

@override
Future<StreamedResponse> send(BaseRequest request) async {
  var r = await _client.send(request);
  var data$ = StreamController<List<int>>();
  r.stream.listen(
    (value) => data$.sink.add(value),
    onDone: () => data$.close(),
    onError: (e) => data$.addError(e),
  );
  return StreamedResponse(
    data$.stream.asBroadcastStream(),
    r.statusCode,
    contentLength: r.contentLength,
    request: r.request,
    headers: r.headers,
    isRedirect: r.isRedirect,
    persistentConnection: r.persistentConnection,
    reasonPhrase: r.reasonPhrase,
  );
}