httpurlconnection.setReadTimeout()究竟做了什么?

时间:2016-02-04 02:49:58

标签: java timeout httpurlconnection

根据connection.setReadTimeout()的java文档 - “非零值指定在建立与资源的连接时从输入流读取时的超时。如果超时在有可用于读取的数据之前到期,则引发java.net.SocketTimeoutException。超时为零被解释作为一个无限的超时。“

因此,如果我设置了一定的读取超时,并开始下载文件,如果达到超时,下载是否会中断?

或者只有在没有为指定的超时读取内容时才会中断?

3 个答案:

答案 0 :(得分:0)

如果没有回应,它只会引发异常。获取数据时不会破坏,所以不要担心。

答案 1 :(得分:0)

如果您开始下载文件并且没有中断,则不会发生超时。

如果超时设置为30秒。如果您下载15秒并且在这15秒之后连接失败,则必须在超时前等待30秒。

答案 2 :(得分:0)

每次调用recv()函数时,读取超时都会重新开始。

所以正确答案是(2)。