0

原始 我有一个执行网络请求的 AsyncTask,它工作正常。我正在测试的环境是针对 Eclipse 的,USB 连接到设备以将信息记录到 LogCat。当从设备上拆下 USB 线并将线重新连接回设备时,我可以看到 LogCat 会话恢复,之后,我退出应用程序并重新进入应用程序,当 AsyncTask 再次运行时,网络请求失败.

在将 USB 线分离和重新连接到 android 设备之间执行网络调用时,有没有人遇到过奇怪的行为? 应用程序的流程看起来很正常,因为我已经记录了直到 AsyncTask 执行点为止的每个序列。 当 USB 始终连接时,该应用程序可与网络调用一起使用。 LogCat 可能与此有关吗?

谢谢。

编辑 网络请求实际上并没有失败,服务器只是用错误代码响应。但在我开始责怪服务器之前,我通过浏览器成功地对同一个 URL 进行了多次点击。我只在图片中涉及了 USB,因为奇怪的行为只发生在 USB 从设备上分离并重新连接时。

更新 经过进一步研究,我终于诊断出这个问题,但不知道为什么会这样。当调试器连接到负责处理网络调用(后台线程)的进程时,应用程序按预期工作。但是,当调试器与进程断开连接时,网络调用会返回服务器错误结果。

调试器如何影响网络调用?

4

1 回答 1

0

好吧,我找到了答案,我会发布它以防万一有人碰巧遇到这个问题。

本质上,USB线并没有真正发挥作用,它只是服务器吐回坏数据,失败后简单重试即可解决。需要时间来理解的原因是,当使用 USB 连接设备时,行为是正常的,一切都很好。这给人一种错觉,即服务器不是问题,因为它始终如一地工作。但是,我知道在“调试”模式下,执行速度较慢,这可能使服务器有时间在后续请求上休息,从而产生服务器是反应性的错觉。但是,当从设备上拆下 USB 线,从而退出调试模式并逃离速度较慢的环境时,服务器确实经过了测试并失败了。所以无论谁遇到这个问题,都不要认为调试器导致了这个问题,它'

于 2013-06-07T20:34:22.970 回答