带有 Spring 的 Android REST 处理太长的请求

标签 android spring rest

我正在使用 Spring 构建 REST 应用程序。我正在以 POJO 方式进行操作。现在我想处理一个花费太长时间的 GET 请求(可以说是因为用户的连接非常糟糕)。我能做些什么来处理这个问题(在 Spring 中),也许是在 5000 毫秒后取消请求?

我的方法:
所以我想需要某种超时。在我的谷歌浏览中,我发现有一个 HttpComponentsClientHttpRequestFactory 和一个所谓的 setConnectTimeout() 函数。我对此进行了测试,但我无法处理抛出的异常,因为它“深入内部”并且作为 AsyncTask 的致命异常传递出去。所以我失败了。

最佳做法是什么?有什么想法吗?

编辑: Spring 已经设置好,所以请只使用 Spring 解决方案。

编辑: 根据我的研究,这是不可能的。偶@Spring Forums 还没有答案:http://forum.springsource.org/showthread.php?135656-How-can-I-handle-GET-requests-that-are-taking-to-long

最佳答案

首先,不要使用 AsyncTask 来执行网络请求,因为如果您更改设备的方向,Activity 会被销毁并在重新创建后被销毁,但 AsyncTask 会保留对被销毁的 Activity 的引用并导致一些内存泄漏。

改用服务。我建议你使用 RoboSpice .它是一个使用 POJO 和 Spring 轻松发出 REST 请求的库。

如果您对自动本地和远程数据持久性管理感兴趣,可以使用 RestDroid处理那个(也用 POJO)。

这两个库都使用 RequestListeners 来管理您正在谈论的案例。当您的请求失败时,UI 会收到通知。

关于带有 Spring 的 Android REST 处理太长的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397277/

相关文章:

android - genymotion 允许 su 永久访问

android - 如何将底板锁定到他的窥视高度?

java - @Resource(名称 ="beanName") 与 ApplicationContext#getBean ("beanName")

java - Spring Kafka Consumer 如何跳过 Avro Deserializer 异常

java - 从 http ://docs. spring.io/下载类

android - 如何估算在应用中使用 AdMob 的潜在收入?

android - 阻止键盘推对齐到底部 View

javascript - Axios.js 和 RestFul API 有什么区别?

javascript - AngularJS 进行 REST 调用并在浏览器中显示结果

rest - K8禁止尝试授予额外特权