build static method
Future<BaseRequest>
build({
- required String baseUrl,
- required String path,
- required ApiType method,
- required Map<
String, String> headers, - ApiBody? body,
- ApiParams? params,
- ApiAuthorization? authorization,
- ApiCookies? cookies,
Builds and returns the correct http.BaseRequest subtype:
http.MultipartRequestwhenbody.typeis ApiBodyType.formData.http.Requestfor all other cases.
Also merges headers, authorization headers, and the cookie header.
Implementation
static Future<http.BaseRequest> build({
required String baseUrl,
required String path,
required ApiType method,
required Map<String, String> headers,
ApiBody? body,
ApiParams? params,
ApiAuthorization? authorization,
ApiCookies? cookies,
}) async {
final uri = _buildUri(baseUrl, path, params, authorization);
final mergedHeaders = <String, String>{
...headers,
...AuthorizationBuilder.buildHeaders(authorization),
};
final cookieHeader = CookieManager.instance.buildCookieHeader(
uri.host,
cookies,
cookies?.extraCookies,
);
if (cookieHeader != null) mergedHeaders['cookie'] = cookieHeader;
if (body != null && body.type == ApiBodyType.formData) {
return _buildMultipart(uri, method, mergedHeaders, body);
}
final request = http.Request(_methodString(method), uri);
request.headers.addAll(mergedHeaders);
_applyBody(request, body);
return request;
}