HttpPayload.dataUrl constructor
HttpPayload.dataUrl(
- String dataUrl
A data url HTTP body.
Implementation
factory HttpPayload.dataUrl(String dataUrl) {
if (!dataUrl.startsWith(_dataUrlMatcher)) {
throw ArgumentError('Invalid data url: $dataUrl');
}
final dataUrlParts = dataUrl.split(',');
final mediaTypeEncoding = dataUrlParts.first.replaceFirst('data:', '');
final body = dataUrlParts.skip(1).join(',');
if (mediaTypeEncoding.endsWith(';base64')) {
return HttpPayload.bytes(
base64Decode(body),
contentType: mediaTypeEncoding.replaceFirst(';base64', ''),
);
}
return HttpPayload.bytes(
// data url encodes body, need to decode before converting it into bytes
utf8.encode(Uri.decodeComponent(body)),
contentType: mediaTypeEncoding,
);
}