【发布时间】:2016-10-06 03:23:04
【问题描述】:
我在前端使用 Android,并且正在使用 Spring 的 REST 客户端库将 HTTP 请求发送到 REST Web 服务。我已经在网上阅读了一些示例,其中人们使用AsyncTask 在doInBackground 的AsyncTask 方法中使用RestTemplate 来完成此操作,但我也阅读了RestTemplate 在AsyncTask 之外使用的示例,甚至在活动或片段中。使用一种方法而不是另一种方法有什么意义吗?
其次,当通过 RestTemplate 的exchange 或getForAllObject 从服务器接收响应时,根据收到的数据,我的客户端应该做不同的事情。例如,如果我想搜索用户,我应该收到User 对象,然后我的客户端应该更新用户片段/活动,但是如果我想登录,我应该收到不同的数据,我的客户端应该执行不同的后续操作任务。
如果我每次发送 HTTP 请求时都创建一个 AsyncTask,然后接收到响应,如何区分客户端需要完成哪些后续任务?是使用枚举的首选方法吗?例如,当我想从服务器获取数据时,我可以实例化一个 AsyncTask 并作为 execute 参数传递一个枚举来指定要发送哪个 HTTP 请求,以及一个枚举来指定如何处理接收到的数据。那么我可以只使用基于枚举调用不同函数的switch语句吗?
如果这些都没有意义,是否有更标准的方法来处理来自服务器的响应?
【问题讨论】: