繁体   English   中英

java.net.SocketTimeoutException(ANDROID)

[英]java.net.SocketTimeoutException (ANDROID)

我用以下代码连接 -

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); 并且仍然有例外。
  • 使用http检查而不是https 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/这个链接完全适用于任何网络浏览器,没有任何滞后。

我得到的信息是,一些人不能打开这个网站,它的滞后但我可以毫不拖延地打开它。

我的研究

我已经尝试过这个问题这个问题这个github解决方案java代码极客解决方案但没有结果。

更新

我用我的wifi和移动数据测试了这个,认为我的路由器可能有端口问题。 但我的移动数据也有同样的例外。

有没有人有任何解决方案。

如果hostname解析为多个IP地址,则此客户端将按RFC 3484顺序尝试每个IP地址。 如果连接到这些地址中的每一个都失败,则在连接尝试引发异常之前将经过多次超时。 支持IPv6IPv4主机名始终至少有2个IP地址.-- Doc

您已经使用了setConnectTimeout()并添加了最长时间,所以毫无疑问。 SocketTimeoutException的主要原因是在建立连接之前超时。

然后主要和某些原因是无法建立与您的服务器连接。

我尝试了https://results.bput.ac.in/http://results.bput.ac.in/ ,两者都超时了。 可能您没有在服务器防火墙中打开端口80和/或443。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM