java - 检查 URL 是 HTTPS 还是 HTTP 协议(protocol)?

标签 java android http https

我目前正在使用以下内容从 android 文档中读取文件 herehere .用户选择(在设置屏幕中)他们的站点是使用 HTTP 还是 HTTPS 协议(protocol)。如果他们的网站使用 HTTP 协议(protocol),则它适用于 HttpURLConnectionHttpsURLConnection,但如果他们的网站使用 HTTPS 协议(protocol),则它不适用于 HttpURLConnection 协议(protocol),最糟糕的是它没有给我异常错误。下面是我正在使用的示例代码。

所以本质上,我如何检查 web url 是否为 HTTPS 协议(protocol),从而检查用户是否选择了正确的协议(protocol)?

InputStream inputStream;
HttpURLConnection urlConnection;
HttpsURLConnection urlHttpsConnection;
boolean httpYes, httpsYes; 
try {
if (httpSelection.equals("http://")) {
  URL url = new URL(weburi);
  urlConnection = (HttpURLConnection) url.openConnection();
  inputStream = new BufferedInputStream((urlConnection.getInputStream()));
httpYes = True;
}
if (httpSelection.equals("https://")) {
  URL url = new URL(weburi);
  urlHttpsConnection = (HttpsURLConnection) url.openConnection();
  urlHttpsConnection.setSSLSocketFactory(context.getSocketFactory());
  inputStream = urlHttpsConnection.getInputStream();
  https=True;
}

catch (Exception e) {
//Toast Message displays and settings intent re-starts
}
finally {
  readFile(in);
if(httpYes){ 
    urlConnection.disconnect();
    httpYes = False;
 }
if(httpsYes){ 
    urlHttpsConnection.disconnect();
    httpsYes = False;
 } 
}
}

编辑:

再详述一下。我需要查看它是否从网站返回有效响应?因此,如果用户选择了 http 而不是 https,我该如何检查 http 是否是不正确的前缀/协议(protocol)?

如何查看网站使用的是HTTPS还是HTTP协议(protocol)?如果用户然后只输入 www.google.com 并且我附加 https://http:// 前缀,我怎么知道应该使用哪一个?

最佳答案

你可以使用android URLUtil检查 url 是 HTTP 还是 HTTPS:

public static boolean isHttpUrl (String url)
Returns True iff the url is an http: url.

public static boolean isHttpsUrl (String url) 
Returns True iff the url is an https: url.

编辑:

public static boolean isValidUrl (String url)
Returns True iff the url is valid.

关于java - 检查 URL 是 HTTPS 还是 HTTP 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411059/

相关文章:

java - JPanel.setBounds(xx,xx,variable,xx) 不起作用。为什么?

java - Netty:不使用证书的安全连接

java同时运行和编辑调试

http - 如何在 Erlang Web 服务器中处理非常大的文件上传?

php - 我的站点 URL 中的未知字符串 '%3Ca%20target='

svn - VisualSVN Server 3 支持 HTTP 压缩吗?

java - 优化 Primehunter 的运行时间

android - 在 Android 上使用 objenesis 时出现 NoClassDefFoundError

android - FileObserver 不工作 android 4.4.3

java - 在 android 中本地存储图像的最佳方式是什么?