检查 Uri 是不是以“http://”或“https://”开头

Posted

技术标签:

【中文标题】检查 Uri 是不是以“http://”或“https://”开头【英文标题】:Checking Uri if they starts with "http://" or "https://"检查 Uri 是否以“http://”或“https://”开头 【发布时间】:2014-11-17 04:36:40 【问题描述】:

我正在检查字符串是否以“http://”或“https://”开头。我想在开头添加“http://”,但它们不是。不过,

String str = "www.***.com"
str = "http://" + str;

会导致

str = "http//***.com"

中间的“:”不见了。我该怎么办?

【问题讨论】:

我不明白: 怎么不见了?它不应该。 正在尝试剥离 www 并添加 http(s) ? 【参考方案1】:

我使用“android.webkit.URLUtil”类来检查 URL。但它有其自身的局限性。

我检测到它允许在 url 中使用空格。

// if url contains http://

 if(url.contains("http://"))
    // Validate URL
    if (!URLUtil.isValidUrl(url)) 

        Toast.makeText(getActivity(),"Invalid URL specified", Toast.LENGTH_SHORT).show();

        return;

         else 

         // Your URL is Ready   

                               
         else// if url does not contains http://

        url = "http://" + url;  //add it to yur url 

         // Validate URL
        if (!URLUtil.isValidUrl(url))  
         Toast.makeText(getActivity(),"Invalid URL specified", Toast.LENGTH_SHORT).show();
             return;
            else 
                    // Your link is ready   

                                   
        

URLUtil at Android developer

Stack Over flow Answer how to validate a URL / website name in EditText in Android?

【讨论】:

【参考方案2】:
if (URLUtil.isNetworkUrl(requestUrl)) 
           // it means url start with http or https
        else
      // do relevant action
     

【讨论】:

【参考方案3】:
String str = "www.***.com"
str = "http://" + str;

上面的结果只是预期的,即“http://www.***.com” 你能发布你的确切代码你在那里做什么。

【讨论】:

以上是关于检查 Uri 是不是以“http://”或“https://”开头的主要内容,如果未能解决你的问题,请参考以下文章

Confluence 6 通过 SSL 或 HTTPS 运行 - 重定向所有的 URLS 到 HTT

URI 中的协议名称是不是有标准?

如何检查uri字符串是不是有效

Unicode 字符是不是存在已知的 URI 方案或 URN 命名空间?

nginx

检查文件是不是来自 htaccess / Apache