如何在java中检查给定的域名http或https?

Ran*_*mar 14 java validation url android

我的问题

在我的Android应用程序中,我从用户那里获得了url输入,例如"www.google.com".

我想知道给定的URL是否使用httphttps.

我试过了什么

在参考了一些Stack Overflow问题后,我尝试使用getScheme()

try {
    String url_name="www.google.com";
    URI MyUri = new URI(url_name);
    String http_or_https="";
    http_or_https=MyUri.getScheme();
    url_name=http_or_https+"://"+urlname;
    Log.d("URLNAME",url_name);
}
catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

但我上面的代码抛出异常.

我的问题

以上方法getScheme()是否正确?

如果上述方法不正确,如何找到网址http或https?

Kri*_*a V 5

您可以使用URLUtils来检查给定的 url 是 http 还是 https 。

URLUtil.isHttpUrl(String url); 如果 url 是 http,则返回 True。

URLUtil.isHttpsUrl(String url); 如果 url 是 https,则返回 True。


DKI*_*KIT 5

域名就是域名,与协议无关。域是 WHERE,协议是 HOW。

域是你想去的位置,协议是你如何去那里,乘公共汽车、乘飞机、乘火车还是乘船。问“我想去商店,我如何询问商店我应该坐火车还是开车去?”是没有意义的?

这在浏览器中起作用的原因是,如果未提供协议,浏览器通常会尝试使用 http 和 https 进行连接。

如果您知道 URL,请执行以下操作:

    public void decideProtocol(URL url) throws IOException {
            if ("https".equals(url.getProtocol())) { 
                // It is https
            } else if ("http".equals(url.getProtocol())) {
                // It is http
            }
    }
Run Code Online (Sandbox Code Playgroud)