send method
Future<TransportResponse>
send({
- required String method,
- required Uri uri,
- required Map<
String, String> headers, - String? body,
- required Duration timeout,
override
Implementation
@override
Future<TransportResponse> send({
required String method,
required Uri uri,
required Map<String, String> headers,
String? body,
required Duration timeout,
}) async {
try {
final request = http.Request(method, uri)..headers.addAll(headers);
request.followRedirects = false;
if (body != null) request.body = body;
final streamed = await _client.send(request).timeout(timeout);
final responseBody = await _readBoundedBody(streamed);
return TransportResponse(
streamed.statusCode,
Map<String, String>.unmodifiable(streamed.headers),
responseBody,
);
} on ApiTransportException {
rethrow;
} catch (_) {
throw const ApiTransportException(
ApiTransportErrorCode.requestFailed,
'ERS HTTP request failed before a response was received.',
);
}
}