understanding URLConnection.setReadTimeout()

后端 未结 3 1240
日久生厌
日久生厌 2020-12-17 09:16

Consider the following snippet:

URLConnection connection = target.openConnection();

connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(1         


        
相关标签:
3条回答
  • 2020-12-17 09:51

    It is for "starting" read data. The timeout is there to set a limit on how long the wait is for incoming data. The timeout doesn't apply when there is data available for reading.

    "If the timeout expires before there is data available for read, a java.net.SocketTimeoutException is raised."

    Oracle Reference

    In short - your understanding is correct.

    0 讨论(0)
  • 2020-12-17 10:01

    you are right! connection.setReadTimeout not mean read complete, it mean when wait for 10s, when there're no more data read in, will throw a timeoutexception.

    0 讨论(0)
  • 2020-12-17 10:07

    According to oracle docs, if no data is available for the read timeout period, exception can be thrown

    A SocketTimeoutException can be thrown when reading from the returned input stream if the read timeout expires before data is available for read.

    0 讨论(0)
提交回复
热议问题