【问题标题】:Manually time out a httpurlconnection in java在java中手动超时httpurlconnection
【发布时间】:2013-01-26 05:04:51
【问题描述】:

我已尝试通过以下方式使 httpurlconnection 超时

URL urlConnect = new URL(url.toString());
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection urlc = (HttpURLConnection) urlConnect.openConnection();
urlc.setConnectTimeout(1000*5);
urlc.setReadTimeout(1000*5);
urlc.connect();

但连接失败,它使用 apache tomcat 分配的 2 分钟超时,而不是我提供的 5 秒 g,在这种情况下如何手动超时 httpurl 连接

【问题讨论】:

    标签: java timeout settimeout httpurlconnection


    【解决方案1】:

    以下是 Java 手册对 connectTimeout 和 readTimeout 的说明:

    连接超时

    设置一个指定的超时值,以毫秒为单位,当 打开到此引用的资源的通信链接 网址连接。如果在连接之前超时过期 建立后,会引发 java.net.SocketTimeoutException。超时 零被解释为无限超时。

    读取超时

    将读取超时设置为指定的超时,以毫秒为单位。一种 非零值指定从输入流读取时的超时 当与资源建立连接时。如果超时到期 在有数据可供读取之前,a 引发 java.net.SocketTimeoutException。超时为零是 解释为无限超时。

    所以我认为在您的情况下,您设法在不到 5 秒的时间内建立了通信链接,并且您没有读取任何输入流。因此行为是正确的(等到 Apache 超时)

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 2015-09-02
      • 2011-03-01
      • 2015-03-04
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多