Implementation
Request copyWith({
Uri? url,
String? method,
Map<String, String>? headers,
Stream<List<int>>? bodyBytes,
bool followRedirects = true,
int maxRedirects = 4,
int? contentLength,
FormData? files,
bool persistentConnection = true,
Decoder<T>? decoder,
bool appendHeader = true,
}) {
if (followRedirects) {
assert(maxRedirects > 0);
}
// If appendHeader is set to true, we will merge origin headers with that
if (appendHeader && headers != null) {
headers.addAll(this.headers);
}
return Request._(
url: url ?? this.url,
method: method ?? this.method,
bodyBytes: bodyBytes ??= BodyBytesStream.fromBytes(const []),
headers: headers == null ? this.headers : Map.from(headers),
followRedirects: followRedirects,
maxRedirects: maxRedirects,
contentLength: contentLength,
files: files,
persistentConnection: persistentConnection,
decoder: decoder,
);
}