【问题标题】:What is the maximum delay in getting http response?获得http响应的最大延迟是多少?
【发布时间】:2016-10-25 12:23:52
【问题描述】:

我正在通过 http 发送请求。连接超时和读取超时设置为 30000 毫秒。我收到回复的最长时间是多少? 它是结合读取+连接超时吗? 我的疑问是读取超时何时开始,在获取连接之后或从我们开始尝试建立连接的时间开始? 配置的连接超时后连接是否建立,连接是否会终止?

这两个超时之间的区别很清楚,但我不清楚何时将它们考虑在内。

con.setConnectTimeout(30000); 
con.setReadTimeout(30000);

【问题讨论】:

  • @DimaSan 另一个问题没有提到两个超时的确切时间。它解释了两个超时之间的区别

标签: java http httpurlconnection session-timeout connection-timeout


【解决方案1】:

connectTimeout 限制了建立连接所花费的时间,而readConnectionTimeout 表示您可以在数据包之间等待多长时间(连续读取)在建立连接后

首先,您尝试建立连接并将该进程限制为connectTimeout。建立连接后,您使用readConnectionTimeout 读取传入数据。

第二个,不会限制数据读取操作的整体时间。总读取时间不能再那么packets_to_be_send * readConnectionTimeout

【讨论】:

  • “connectTimeout”是否应该大于“packets_to_be_send * readConnectionTimeout”。建立连接后会出现连接超时吗?
  • 这无关紧要,因为这些超时是互斥的——首先你尝试建立连接(TCP 控制)——这里是connectionTimeout。建立连接后,读取实际的应用程序数据 - 这就是readConnectionsTimeout 的来源。由于连接已经建立,connectTimeout 不再具有任何意义。
  • @DarshanGopalR 您已在(已编辑)评论中指出了问题 - 不,在建立连接后 connectionTimeout 不再考虑。
  • 感谢您的澄清
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多