Android 哪个更好?单个SOAP消息中的web服务调用(SOAP消息)数量多还是数据量大?

Android 哪个更好?单个SOAP消息中的web服务调用(SOAP消息)数量多还是数据量大?,android,web-services,soap,mobile,Android,Web Services,Soap,Mobile,我正在设计一个通过SOAP消息获取服务器数据的移动应用程序。 我想知道什么是最佳实践: 更多的web服务调用在每个SOAP消息调用中获取更少的数据。 或 我在一个web服务调用中获得所有数据,但是SOAP消息的长度会很大。 单个soap消息中的大量数据不会给移动用户造成数据连接问题吗。 在我特定年份的申请中,我必须获得所有汽车制造商的名称以及每个制造商的所有汽车型号名称。我有两个计划: 当用户选择一年时,我发送一个web服务,该服务将获取所有数据 当用户选择年份时,我得到制造商的名称,然后


我正在设计一个通过SOAP消息获取服务器数据的移动应用程序。

我想知道什么是最佳实践:

  • 更多的web服务调用在每个SOAP消息调用中获取更少的数据。
  • 我在一个web服务调用中获得所有数据,但是SOAP消息的长度会很大。

    单个soap消息中的大量数据不会给移动用户造成数据连接问题吗。

    在我特定年份的申请中,我必须获得所有汽车制造商的名称以及每个制造商的所有汽车型号名称。我有两个计划:
  • 当用户选择一年时,我发送一个web服务,该服务将获取所有数据
  • 当用户选择年份时,我得到制造商的名称,然后当用户选择制造商时,我得到该制造商的所有型号。
    请告诉我应该采取哪种方法来帮助我
*PS:*用户可以有许多车辆,如果我使用第二种方法,则会为每辆车辆调用web服务。

几点

  • 正如评论中所指出的,尽可能使用JSON而不是SOAP,SOAP非常重要,现在不推荐使用SOAP。(看看Google和其他公司公开的所有端点,其中大多数都使用JSON)

  • 如果xml大小变得太大(超过几千字节),最好进行多次调用,而不是在内存中加载一个大对象


  • 我们谈论的是哪种尺寸响应-最小/最大/典型

    这个问题没有简单的答案,因为它取决于触发web服务请求的因素,例如,它是否响应用户操作,等等

    延迟是移动网络的杀手之一(比低带宽更重要),因此理论上,您应该将请求数量控制在最低限度

    但是

    如果您不需要数据,那么提出大量请求是没有意义的

    我的猜测是,你必须用不同的响应大小进行测试,以找到最佳点

    另外,不要忘记在请求中允许gzip/deflate并压缩来自服务器的响应


    如果可能的话,我也会选择RESTful方法,并确保GET响应在移动连接上可缓存,因为网络延迟,我会选择更大的响应。一次取回一堆东西总比一次取回一个新的来回要好。这将使你的应用程序保持快速


    如果您使用可以“流式”响应的库,则可以高效地处理更大的响应,而无需将这些响应存储在内存中。

    这正是我多年来一直在寻找的内容……好问题mayneSOAP是开发移动设备服务时使用的反推荐体系结构。您应该使用RESTfull体系结构,最好以JSON@OvidiuLatcu谢谢,但我正在为其工作的客户已经使用了此架构,因此我无法更改。如果用户有多辆车,请发送聚合请求:“向我提供A、B和C的详细信息”。回答也应该是聚合的:“以下是A、B和C的详细信息”。如果你能侥幸逃脱,就不要在客户端进行过滤。如果在每次web调用之间都有用户操作,那么延迟问题就不那么严重了。soap或json只是一种格式。。问题仍然存在:1个json调用包含许多对象,或者多个json调用包含较少数据。如果json大小较大,我更喜欢第二个json调用。mobile Now http request是更好的选择。谢谢……我已经相应地更新了问题。请告知。我会使用第二种方法,即联系制造商,然后,当选择了一款车型时,获取所有可能的数据几乎没有意义,如果用户要深入到某个子系统,那么这会不会使我的应用程序变慢…因为我的用户可以有多辆车,然后必须调用所有车辆..在各种条件下测试这两种解决方案将是可行的只有这样你才能得到“真实”的答案。但是如果有350家制造商,他们每个都有10个型号,那么你会看到350个产品的响应,然后是10个产品中的一个(几个?),而不是3500个产品中的一个,如果你一次完成所有产品。