我可以在Java HttpURLConnection中为数据传输设置超时吗?

时间:2011-08-15 10:15:05

标签: java http httpurlconnection

我用

URLConnection urlConn = theURL.openConnection();

// set connect timeout.
urlConn.setConnectTimeout(5000);

// set read timeout.
urlConn.setReadTimeout(5000);

在我的申请中。连接时间超时一次,直到读取开始的时间。有没有简单的方法来超时实际的数据传输过程?

我有线程从非常慢的主机读取数据,或者数据源非常大,导致传输时间过长。我怎样才能限制时间?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用Thread.join(int) - > http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#join(long)。完成后检查线程的状态。如果它还没有结束,那么终止它并假设超时。

答案 1 :(得分:-1)

据我所知,我认为docs支持这一点,readTimeout从InputStream的读取开始时开始 - 所以这将超时进行长时间的传输。

编辑:文档说:

  

非零值指定从输入流读取时的超时   何时建立与资源的连接

这可能不是那么好写,但听起来好像这确实与转移时间有关。