2014-12-05 67 views
1

我想用HttpUrlConnection连接到一个URL。用户输入的主机可以在http://或https://上运行。当我连接它时抛出一个异常作为EOFException。 有没有什么办法,我通过一些错误代码或东西,确定网址在https上运行?如何检查https使用HttpURLConnection

我正在使用此代码。

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

我米使用的住所代码,如果什么网址无效像我型wwww.gooooooodldldle.com 这是不合法的URL。我得到Java.net.SocketTimeout例外这里

回答

2

的URL后,如果不再次reacreate它的连接已经建立不能改变。我会这样做来了解协议。

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中,并在异常升级时显示吐司或对话框。

希望它有帮助。

+0

嗨 我想检查主机是否无效。截至目前,我正在得到一个例外。 – 2014-12-05 13:15:54

+0

@TarunSharma你可以更新你的问题并添加异常追踪吗?这可能会有所帮助。 – axierjhtjz 2014-12-05 13:18:07

+0

我更新了检查出来 – 2014-12-05 13:21:20