postStreamRaw method
Stream<String>
postStreamRaw(
- String endpoint,
- Map<
String, dynamic> data, { - CancelToken? cancelToken,
Make a POST request and return raw stream
Implementation
Stream<String> postStreamRaw(
String endpoint,
Map<String, dynamic> data, {
CancelToken? cancelToken,
}) async* {
try {
if (_logger.isLoggable(Level.FINE)) {
_logger.fine('Phind stream request payload: ${jsonEncode(data)}');
}
final response = await _dio.post(
endpoint,
data: data,
cancelToken: cancelToken,
options: Options(responseType: ResponseType.stream),
);
_logger.info('Phind stream HTTP status: ${response.statusCode}');
if (response.statusCode != 200) {
throw ProviderError(
'Phind API returned status ${response.statusCode}',
);
}
final stream = response.data as ResponseBody;
await for (final chunk in stream.stream.map(utf8.decode)) {
yield chunk;
}
} on DioException catch (e) {
throw DioErrorHandler.handleDioError(e, 'Phind');
}
}