java - 了解 URLConnection.setReadTimeout()

标签 java timeout urlconnection

考虑以下片段:

URLConnection connection = target.openConnection();

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

connection.setReadTimeout 是否设置了 STARTING 读取数据可用的最长时间,还是 COMPLETING 读取数据可用的最长时间?

我的理解是,java 有 10 秒的时间开始从连接读取下一个字节的数据。完成从连接读取所有数据没有超时,因为我们不知道 strean 有多大。是否正确?

最佳答案

用于“开始”读取数据。超时用于设置等待传入数据的时间限制。当有数据可供读取时,超时不适用。

“如果在有数据可供读取之前超时到期,则会引发java.net.SocketTimeoutException。”

Oracle Reference

简而言之,您的理解是正确的。

关于java - 了解 URLConnection.setReadTimeout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554342/

相关文章:

java - 如何修复 "The application may be doing too much work on its main thread"(Android)

javascript - 优化循环 ui 更新

linux - Bash:WAITING超时

java - URLConnection FTP 列表文件

java - 我如何从 html 中获取细节?

java - 导入 "google/protobuf/timestamp.proto"未找到或有错误

java - 扫描仪需要输入两次

java - SSLHandshakeException : PKIX path building failed

c# - 与 SocketAsyncEventArgs 的异步套接字通信超时

java - URLConnection 不使用代理设置