getValidRequestUri function
(Uri?, String?)
getValidRequestUri(
- String? url,
- List<
NameValueModel> ? requestParams, { - SupportedUriSchemes defaultUriScheme = kDefaultUriScheme,
Implementation
(Uri?, String?) getValidRequestUri(
String? url,
List<NameValueModel>? requestParams, {
SupportedUriSchemes defaultUriScheme = kDefaultUriScheme,
}) {
url = url?.trim();
if (url == null || url == "") {
return (null, "URL is missing!");
}
if (kLocalhostRegex.hasMatch(url) || kIPHostRegex.hasMatch(url)) {
url = '${SupportedUriSchemes.http.name}://$url';
}
Uri? uri = Uri.tryParse(url);
if (uri == null) {
return (null, "Check URL (malformed)");
}
(String?, bool) urlScheme = getUriScheme(uri);
if (urlScheme.$1 != null) {
if (!urlScheme.$2) {
return (null, "Unsupported URL Scheme (${urlScheme.$1})");
}
} else {
url = "${defaultUriScheme.name}://$url";
}
uri = Uri.parse(url);
if (uri.hasFragment) {
uri = uri.removeFragment();
}
Map<String, String>? queryParams = rowsToMap(requestParams);
if (queryParams != null && queryParams.isNotEmpty) {
if (uri.hasQuery) {
Map<String, String> urlQueryParams = uri.queryParameters;
queryParams = mergeMaps(urlQueryParams, queryParams);
}
uri = uri.replace(queryParameters: queryParams);
}
return (uri, null);
}