我正在尝试使用 HttpUrlConnection 连接到一个 url。用户输入的主机可以运行在http://或https://上。当我连接时,它抛出异常作为 EOFException。 有什么方法可以通过一些错误代码或其他东西来识别 url 在 https 上运行吗??
我为此目的使用以下代码。
HttpURLConnection.setFollowRedirects(true);
con = (HttpURLConnection) new URL(url[0]).openConnection();
con.setRequestMethod("POST");
con.setConnectTimeout(20000);
我正在使用住所代码如果 url 无效怎么办就像我键入 wwww.gooooooodldldle.com 这是无效的网址。我在这里得到 Java.net.SocketTimeout 异常
最佳答案
如果您不重新创建连接,则在创建连接后 URL 将无法更改。我会这样做以了解协议(protocol)。
URL url;
try {
url = new URL(url[0]);
if(url.getProtocol().equalsIgnoreCase(HTTPS){
Lod.i(TAG, "Is HTTPS connection");
} else {
Log.i(TAG, "Is HTTP connection");
}
} catch (EOFException eofEx) {
eofEx.printStackTrace();
}
更新后:
您可以使用正则表达式检查 url 字符串,如果正确则尝试连接。或者将所有逻辑放在 try catch 中,并在出现异常时显示 toast 或对话框。
希望对您有所帮助。
关于java - 如何使用 HttpURLConnection 检查 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27314619/