transformResponse method
- RequestOptions options,
- ResponseBody responseBody
override
transformResponse allows changes to the response data before
it is passed to ResponseInterceptor.
Note: As an agreement, you must return the responseBody
when the Options.responseType is ResponseType.stream.
Implementation
@override
Future transformResponse(
RequestOptions options,
ResponseBody responseBody,
) async {
// Return streams and bytes as-is
if (options.responseType == ResponseType.stream) {
return responseBody;
}
final responseBytes = await consolidateBytes(responseBody.stream);
if (options.responseType == ResponseType.bytes) {
return responseBytes;
}
// Always decode as string, no JSON parsing
return utf8.decode(responseBytes, allowMalformed: true);
}