buildUri function
Builds a valid URI from baseUrl
, url
and parameters
.
If url
starts with 'http://' or 'https://', baseUrl is ignored.
Implementation
Uri buildUri(String baseUrl, String url, Map<String, dynamic> parameters) {
var uri;
if (url.startsWith('http://') || url.startsWith('https://')) {
// If the request's url is already a fully qualified URL, we can use it
// as-is and ignore the baseUrl.
uri = Uri.parse(url);
} else {
if (!baseUrl.endsWith('/') && !url.startsWith('/')) {
uri = Uri.parse('$baseUrl/$url');
} else {
uri = Uri.parse('$baseUrl$url');
}
}
var query = mapToQuery(parameters);
if (query.isNotEmpty) {
if (uri.hasQuery) {
query += '&${uri.query}';
}
return uri.replace(query: query);
}
return uri;
}