createBody static method
dynamic
createBody()
Implementation
static dynamic createBody(
Map<String, dynamic> headers,
Map<String, dynamic>? params,
String? body,
BodyType? bodyType,
bool encodeBodyUtf8,
) {
String? contentType;
dynamic postBody;
switch (bodyType) {
case BodyType.JSON:
contentType = 'application/json';
postBody = body ?? json.encode(params ?? {});
break;
case BodyType.TEXT:
contentType = 'text/plain';
postBody = body ?? json.encode(params ?? {});
break;
case BodyType.X_WWW_FORM_URL_ENCODED:
contentType = 'application/x-www-form-urlencoded';
postBody = toStringMap(params ?? {});
break;
case BodyType.MULTIPART:
contentType = 'multipart/form-data';
postBody = params;
break;
case BodyType.NONE:
case null:
break;
}
// Set "Content-Type" header if it was previously unset.
if (contentType != null &&
!headers.keys.any((h) => h.toLowerCase() == 'content-type')) {
headers['Content-Type'] = contentType;
}
return encodeBodyUtf8 && postBody is String
? utf8.encode(postBody)
: postBody;
}