如何使用HttpURLConnection检查https

时间:2014-12-05 11:13:21

标签: java android http httpurlconnection

我正在尝试使用HttpUrlConnection连接到网址。用户输入的主机可以在http://或https://上运行。当我连接它时会抛出异常作为EOFException。 有什么方法可以通过某些错误代码或其他东西确定网址是否在https上运行?

以下代码用于此目的。

HttpURLConnection.setFollowRedirects(true);
con = (HttpURLConnection) new URL(url[0]).openConnection();
con.setRequestMethod("POST");
con.setConnectTimeout(20000);

我使用了abode代码,如果url无效,就像我输入wwww.gooooooodldldle.com 这是无效的网址。我在这里得到Java.net.SocketTimeout异常

2 个答案:

答案 0 :(得分:2)

如果您不再次重新连接,则在创建连接后,URL无法更改。我会这样做,以了解协议。

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();
}

更新后:

您可以使用Regular Expresion检查url字符串,然后如果正确,请尝试连接。或者将所有逻辑放在try catch中,如果异常增加,则显示toast或对话框。

希望它有所帮助。

答案 1 :(得分:0)

如果您不介意,请尝试使用android-async-http