transformRequest method
transformRequest allows changes to the request data before it is
sent to the server, but after the RequestInterceptor
.
This is only applicable for request methods 'PUT', 'POST', and 'PATCH'
Implementation
@override
Future<String> transformRequest(RequestOptions options) async {
final Object data = options.data ?? '';
if (data is! String && Transformer.isJsonMimeType(options.contentType)) {
return jsonEncodeCallback(data);
} else if (data is Map) {
if (data is Map<String, dynamic>) {
return Transformer.urlEncodeMap(data, options.listFormat);
}
debugLog(
'The data is a type of `Map` (${data.runtimeType}), '
'but the transformer can only encode `Map<String, dynamic>`.\n'
'If you are writing maps using `{}`, '
'consider writing `<String, dynamic>{}`.',
StackTrace.current,
);
return data.toString();
} else {
return data.toString();
}
}