dvSendHttpRequest function

Future<DVHttpResponse> dvSendHttpRequest(
  1. DVHttpRequest request
)

Sends request, walking its protocol chain until one succeeds.

Implementation

Future<DVHttpResponse> dvSendHttpRequest(DVHttpRequest request) async {
  if (request.connectAddress == null) {
    return DVHttpFallbackClient(dvHttpTransport).send(request);
  }
  final DVHttpStreamedResponse response =
      await pinned.dvPinnedStreamHttpRequest(request);
  final BytesBuilder bytes = BytesBuilder(copy: false);
  await for (final List<int> chunk in response.body) {
    bytes.add(chunk);
  }
  final Uint8List body = bytes.takeBytes();
  return DVHttpResponse(
    statusCode: response.statusCode,
    body: utf8.decode(body, allowMalformed: true),
    bytes: body,
    protocol: response.protocol,
  );
}