execute method
Executes an HTTP request and returns the raw response
Implementation
@override
Future<HttpResponse> execute({
required String url,
required HttpMethod method,
Uint8List? body,
Map<String, String>? headers,
}) async {
final uri = Uri.parse(url);
final requestHeaders = headers ?? {};
http.Response response;
try {
switch (method) {
case HttpMethod.get:
response =
await _client.get(uri, headers: requestHeaders).timeout(timeout);
break;
case HttpMethod.post:
response = await _client
.post(uri, headers: requestHeaders, body: body)
.timeout(timeout);
break;
case HttpMethod.put:
response = await _client
.put(uri, headers: requestHeaders, body: body)
.timeout(timeout);
break;
case HttpMethod.delete:
response = await _client
.delete(uri, headers: requestHeaders)
.timeout(timeout);
break;
}
return HttpResponse(
statusCode: response.statusCode,
body: response.bodyBytes,
);
} catch (e) {
rethrow;
}
}