从Spring REST服务接收Android中的响应

时间:2016-10-06 03:23:04

标签: android spring rest

我在前端使用Android,并且我使用Spring的REST客户端库将HTTP请求发送到REST Web服务。我已经在线阅读了一些人们AsyncTask使用RestTemplate doInBackground AsyncTask RestTemplate方法来完成此操作的示例,但我也读了一些示例AsyncTaskexchange之外使用,即使在活动或片段中也是如此。使用一种方法而不是另一种方法有什么意义吗?

其次,当通过RestTemplate的getForAllObjectUser从服务器收到回复时,根据收到的数据,我的客户应该做不同的事情。例如,如果我想搜索用户,我应该收到execute个对象,然后我的客户端应该更新用户片段/活动,但如果我想登录,我应该收到不同的数据,我的客户端应该执行不同的后续任务。

如果每次发送HTTP请求然后收到响应时都创建AsyncTask,我如何区分客户端需要完成的后续任务?是使用枚举的首选方法吗?例如,当我想从服务器获取数据时,我可以实例化AsyncTask并将{{1}}参数传递给枚举以指定要发送的HTTP请求,并使用枚举来指定如何处理接收的数据。然后我可以使用基于枚举调用不同函数的switch语句?

如果这一切都没有意义,是否有更标准的方法来处理来自服务器的响应?

1 个答案:

答案 0 :(得分:0)

来自docs

  

AsyncTask可以正确,轻松地使用UI线程。此类允许您执行后台操作并在UI线程上发布结果,而无需操作线程和/或处理程序。

AsyncTask提供了一种在后台执行任务并与主UI线程交互的便捷方式。如果您没有使用AsyncTasks,则必须实现自己的方法以与主线程同步以更新UI。如果您正在调用任何后端服务或执行长时间运行操作,那么最好使用异步任务。

使用相同的REST端点基于枚举返回不同的对象是一种不好的做法。有两个独立的端点。一个GET呼叫搜索用户和一个POST呼叫登录用户。在客户端也有消耗上述端点的单独实现。需要时适当使用它们。