请考虑以下代码段:
URLConnection connection = target.openConnection();
connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(10000); // 10 sec
Run Code Online (Sandbox Code Playgroud)
是否connection.setReadTimeout设置了STARTING读取数据的最大可用时间,还是可用于完成读取数据的最大时间?
我的理解是,java有10秒钟的时间开始从连接中读取下一个数据字节.完成从连接读取所有数据没有超时,因为我们不知道可能有多大.这是对的吗?
我正在尝试使用 REST 模板从 Spring MVC 应用程序调用 REST API。这样做时,我们必须设置超时值(连接超时和读取超时)并在 YML 文件中维护。
超时是从 YML 读取的,并在初始化剩余模板时设置。
例如,如果我有这样的场景:- 连接超时 = 5 秒,读取超时 = 3 秒
我的问题是什么时候会发生读取超时?
我搜索了相同的内容,但没有得到答案,因为我得到的信息是连接超时用于建立连接,并且在从连接读取时会发生读取,但是读取超时值是否包括连接超时值也不清楚。
这可能是基本问题,但是我很困惑,因此任何有关该问题的指导/指示都会有所帮助。
谢谢 !
编辑:我已经浏览了“ Spring Rest template readTimeOut ”,它说时钟在请求第一次到达该套接字时启动,并在以下任一者先到时停止:请求完成或达到 readTimeout但我在建立连接时理解为好吧,套接字将会受到影响。这是否意味着 readtimeout 也包括连接超时?