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



我用

URLConnection urlConn = theURL.openConnection();
// set connect timeout.
urlConn.setConnectTimeout(5000);
// set read timeout.
urlConn.setReadTimeout(5000);

在我的应用程序。连接时间为一个超时,读取开始之前为一个超时。是否有简单的方法使实际的数据传输过程超时?

我有线程从非常慢的主机读取数据,或者数据源非常大,导致传输时间过长。我该如何限制这个时间?

您可以尝试使用Thread.join(int) -> http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#join(long)。然后检查线程的状态,一旦完成。

如果没有结束,则终止它并假定超时。

据我所知,我认为文档支持这一点,readTimeout从读取InputStream开始时开始-因此这将超时为长时间传输。

编辑:文档说:

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

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

最新更新