compose method
RequestOptions
compose(
- BaseOptions baseOpt,
- String path, {
- dynamic data,
- Map<
String, dynamic> ? queryParameters, - CancelToken? cancelToken,
- Options? options,
- ProgressCallback? onSendProgress,
- ProgressCallback? onReceiveProgress,
Implementation
RequestOptions compose(
BaseOptions baseOpt,
String path, {
data,
Map<String, dynamic>? queryParameters,
CancelToken? cancelToken,
Options? options,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) {
var query = <String, dynamic>{};
query.addAll(baseOpt.queryParameters);
if (queryParameters != null) query.addAll(queryParameters);
var _headers = caseInsensitiveKeyMap(baseOpt.headers);
_headers.remove(Headers.contentTypeHeader);
String? _contentType;
if (headers != null) {
_headers.addAll(headers!);
_contentType = _headers[Headers.contentTypeHeader] as String?;
}
var _extra = Map<String, dynamic>.from(baseOpt.extra);
if (extra != null) {
_extra.addAll(extra!);
}
var _method = (method ?? baseOpt.method).toUpperCase();
var requestOptions = RequestOptions(
method: _method,
headers: _headers,
extra: _extra,
baseUrl: baseOpt.baseUrl,
path: path,
data: data,
connectTimeout: baseOpt.connectTimeout,
sendTimeout: sendTimeout ?? baseOpt.sendTimeout,
receiveTimeout: receiveTimeout ?? baseOpt.receiveTimeout,
responseType: responseType ?? baseOpt.responseType,
validateStatus: validateStatus ?? baseOpt.validateStatus,
receiveDataWhenStatusError:
receiveDataWhenStatusError ?? baseOpt.receiveDataWhenStatusError,
followRedirects: followRedirects ?? baseOpt.followRedirects,
maxRedirects: maxRedirects ?? baseOpt.maxRedirects,
queryParameters: query,
requestEncoder: requestEncoder ?? baseOpt.requestEncoder,
responseDecoder: responseDecoder ?? baseOpt.responseDecoder,
listFormat: listFormat ?? baseOpt.listFormat,
);
requestOptions.onReceiveProgress = onReceiveProgress;
requestOptions.onSendProgress = onSendProgress;
requestOptions.cancelToken = cancelToken;
requestOptions.contentType = _contentType ??
contentType ??
baseOpt.contentTypeWithRequestBody(_method);
return requestOptions;
}