出现HttpURLConnection的“默认”超时为零,表示“无超时”。
不幸的是,根据我的经验,根据您与服务器的连接情况,使用这些默认值可能会导致不稳定状态。如果您使用
HttpURLConnection且未明确设置(至少读取)超时,则您的连接可能会进入永久性的陈旧状态。默认。因此,请始终将其设置
setReadTimeout为“
something”,否则您可能会孤立连接(以及可能取决于应用程序的运行方式的线程)。
从试验和错误
setConnectTimeout看来,不需要调用是因为套接字本身似乎内置了2分钟的“连接超时”(至少在OS X中如此)。
您还可以通过调整系统属性来为超时设置“全局默认值” 。
修复/预后:始终设置一个readTimeout(即使非常大),或者使用其他客户端来设置SO_KEEPALIVE。没有这些默认值会导致没有它的线程“永远”挂起。



