HttpRequestBody constructor
Implementation
HttpRequestBody(
Object? content,
String? type, [
Map<String, Object?>? parameters,
]) {
_contentType = normalizeType(type);
var parametersMapStr = _toParametersMapOfString(parameters);
if (content is HttpBodyBuilder) {
var f = content;
content = f(parametersMapStr ?? {});
} else if (content is HttpBodyBuilderTyped) {
var f = content;
content = f(parametersMapStr ?? {}, _contentType);
} else if (content is Function) {
var f = content;
content = f();
}
if (content == null) {
_content = null;
} else if (content is HttpBody) {
_content = content;
} else if (!isJSONType &&
(content is List<int> ||
content is ByteBuffer ||
isHttpBlob(content))) {
_content = HttpBody.from(content, MimeType.parse(_contentType));
} else if (content is String) {
_content = HttpBody.from(content, MimeType.parse(_contentType));
} else if (isJSONType ||
(_contentType == null && (content is Map || content is List))) {
_contentType ??= MimeType.applicationJson;
var jsonEncoded = encodeJSON(content);
_content = HttpBody.from(jsonEncoded, MimeType.parse(_contentType));
} else {
_content = HttpBody.from(
content.toString(),
MimeType.parse(_contentType),
);
}
}