小编典典

了解URLConnection.setReadTimeout()

java

考虑以下代码段:

URLConnection connection = target.openConnection();

connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(10000); // 10 sec

这些connection.setReadTimeout设置是设置可用于开始读取数据的最大时间,还是设置可用于完成读取数据的最大时间?

我的理解是,Java有10秒的时间开始从连接中读取下一个数据字节。由于我们不知道strean的大小,因此从连接中读取所有数据没有超时的限制。这是正确的吗?


阅读 223

收藏
2020-11-01

共1个答案

小编典典

根据oracle docs,如果在读取超时期间没有可用数据,则可以引发异常

如果读取超时在可读取数据之前到期,则从返回的输入流进行读取时会抛出SocketTimeoutException。

2020-11-01