diff --git a/packages/apidash_core/lib/consts.dart b/packages/apidash_core/lib/consts.dart index 3493c40d..d2544d04 100644 --- a/packages/apidash_core/lib/consts.dart +++ b/packages/apidash_core/lib/consts.dart @@ -4,8 +4,13 @@ enum HTTPVerb { get, head, post, put, patch, delete } enum FormDataType { text, file } -const kSupportedUriSchemes = ["https", "http"]; +enum SupportedUriSchemes { https, http } + +final kSupportedUriSchemes = + SupportedUriSchemes.values.map((i) => i.name).toList(); const kDefaultUriScheme = "https"; +final kLocalhostRegex = RegExp(r'^localhost(:\d+)?(/.*)?$'); + const kMethodsWithBody = [ HTTPVerb.post, HTTPVerb.put, diff --git a/packages/apidash_core/lib/utils/uri_utils.dart b/packages/apidash_core/lib/utils/uri_utils.dart index fd755db2..09c159ab 100644 --- a/packages/apidash_core/lib/utils/uri_utils.dart +++ b/packages/apidash_core/lib/utils/uri_utils.dart @@ -29,6 +29,10 @@ String stripUrlParams(String url) { if (url == null || url == "") { return (null, "URL is missing!"); } + + if (kLocalhostRegex.hasMatch(url)) { + url = '${SupportedUriSchemes.http.name}://$url'; + } Uri? uri = Uri.tryParse(url); if (uri == null) { return (null, "Check URL (malformed)");