考虑以下片段:
URLConnection connection = target.openConnection();
connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(10000); // 10 sec
connection.setReadTimeout
是否设置了 STARTING 读取数据可用的最长时间,还是 COMPLETING 读取数据可用的最长时间?
我的理解是,java 有 10 秒的时间开始从连接读取下一个字节的数据。完成从连接读取所有数据没有超时,因为我们不知道 strean 有多大。是否正确?
最佳答案
用于“开始”读取数据。超时用于设置等待传入数据的时间限制。当有数据可供读取时,超时不适用。
“如果在有数据可供读取之前超时到期,则会引发java.net.SocketTimeoutException
。”
简而言之,您的理解是正确的。
关于java - 了解 URLConnection.setReadTimeout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554342/