我使用以下代码进行连接 -
URL url = new URL("https://results.bput.ac.in/");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(1000 * 20);
urlc.connect();
它返回了 SocketTimeoutException 。
异常
我得到的确切例外是
java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 443) after 90000ms
,有时这个 -
java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 80) after 90000ms
urlc.setConnectTimeout(1000 * 20);
并仍然例外。URL url = new URL("http://results.bput.ac.in/");
进行检查,但未获得任何结果。URL url = new URL("https://www.facebook.com/");
签约并获得成功回复。问题在于此特定网址 - http://results.bput.ac.in/
。
信息
我给http://results.bput.ac.in/
这个链接完全可以在任何网络浏览器上工作,而且没有任何滞后。
我得到的信息是有些人不能打开这个网站,它的滞后但我可以毫不拖延地打开它。
我的研究
我已经尝试过this SO question,this SO question,this github solution和java code geeks solution,但没有结果。
更新
我用我的wifi和移动数据测试了这个,认为我的路由器可能有端口问题。但我的移动数据也有同样的例外。
有没有人对此有任何解决方案。
答案 0 :(得分:2)
如果
hostname
解析为多个IP地址,则此客户端将按RFC 3484顺序尝试每个IP地址。如果连接到这些地址中的每一个都失败,则在连接尝试引发异常之前将经过多次超时。支持IPv6
和IPv4
的主机名始终至少有2个IP地址.-- Doc
您已经使用过setConnectTimeout()
并添加了最长时间,所以毫无疑问。 SocketTimeoutException 的主要原因是在建立连接之前是否超时。
然后主要和某些原因是无法建立与您的服务器的连接。
答案 1 :(得分:0)
我尝试了https://results.bput.ac.in/和http://results.bput.ac.in/并且都超时了。可能你没有在服务器防火墙中打开端口80和/或443。