request method
Implementation
Future<Stream<String>> request(
String path, {
Map<String, dynamic>? requestBody,
Map<String, dynamic>? queryParameters,
String method = 'POST',
Map<String, String>? headers,
}) async {
Uri uri = Uri.parse(
"$baseUrl$path",
).replace(queryParameters: queryParameters);
io.HttpClient httpClient = io.HttpClient();
io.HttpClientRequest request = await httpClient.openUrl(method, uri);
this.headers?.forEach((key, value) {
request.headers.set(key, value);
});
headers?.forEach((key, value) {
request.headers.set(key, value);
});
if (apiKey != null)
request.headers.add(io.HttpHeaders.authorizationHeader, 'Bearer $apiKey');
if (requestBody != null) {
request.add(utf8.encode(jsonEncode(requestBody)));
}
io.HttpClientResponse response = await request.close();
if (response.statusCode >= 400) {
final errorBody = await response.transform(utf8.decoder).join();
throw SseRequestException(response.statusCode, errorBody);
}
Stream<String> stream = response.transform(utf8.decoder);
return stream;
}