3

我正在通过 HTTP 连接将数据从 Android Mobile 发布到服务器。我能够将数据发布到服务器并得到服务器的确认。但是有时,如果我的服务器通信线程在发布数据后等待来自服务器的确认,那么我失去了 Internet 连接并且线程无法从服务器接收 Ack 并进入无限循环。我尝试了 setReadTimeOut(180000) 方法。

它可以为我工作吗?如果没有网络可用/服务器和移动设备之间没有连接,它是否会给出 SocketTimeOutException

4

1 回答 1

2

设置超时很可能会起作用。但是,我不建议将其设置为 180000(= 180 秒 = 3 分钟!)。30 秒通常绰绰有余。您可能还想添加一个setConnectTimeout

请注意,在某些情况下 HttpUrlConnection 并不总是正常工作:

  1. Android 版本 2.2 或更早版本,这些版本最好使用 Apache HTTP 客户端(另见这篇文章
  2. 在模拟器上(另见这篇文章
于 2012-04-26T08:47:20.283 回答