send method

  1. @override
Future<Response> send(
  1. Request request
)
override

Sends request and parses the response.

Implementation

@override
Future<Response> send(Request request) async {
  final pathSegments = <String>[
    ..._uri.pathSegments,
    ...request.pathSegments,
  ];
  final newUri = _uri.replace(
      pathSegments: pathSegments, queryParameters: request.params);
  final rq = http.Request(request.method, newUri);
  if (_authorization != null) {
    rq.headers['Authorization'] = _authorization!;
  }
  if (request.headers != null) {
    rq.headers.addAll(request.headers!);
  }
  if (request.bodyText != null) {
    rq.body = request.bodyText!;
  }
  final rs = await _httpClient.send(rq).timeout(_timeout);
  final warning = rs.headers['warning'];
  return Response(rs.statusCode, await rs.stream.bytesToString(),
      warning: warning);
}