仅请求部分回复?

时间:2012-07-16 09:22:39

标签: java android ksoap

我对kSOAP很新。我有一个Web服务,它有一个巨大的响应,一个数组填充了对象和数组之外的一些额外数据。使用正常的getResponse()请求整个XML大约需要5-10秒。这将给我一个完整的数组,我将不会用于任何事情。

我现在的问题是,有没有办法只在数组之外获取数据的一小部分,而不必更改web服务本身,因为我无权更改web服务?

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
  <GetResponse xmlns="http://tempuri.org/">
     <GetResult>
        <a:Wrap>
           <a:Country>DK</a:Country>
           <a:ID>155</a:ID>
           <a:SecondWrap>
              <a:Pattern>
                 <b:ListPattern>
                    <b:Type>Price</b:Type>
                    <b:Day>1</b:Day>
                    <b:Hour>1</b:Hour>
                    <b:ListId>007</b:ListId>
                    <b:Price>135</b:Price>
                 </b:ListPattern>
                 <b:ListPattern>
                    <b:Type>Price</b:Type>
                    <b:Day>1</b:Day>
                    <b:Hour>2</b:Hour>
                    <b:ListId>007</b:ListId>
                    <b:Price>135</b:Price>
                 </b:ListPattern>
                 ...
                 ...
                 ...

这是XML响应的一小部分。我不想只知道Wrap对象的国家和ID,并完全排除ListPattern。我甚至不想得到ListPattern。这是性能优化的问题。那么我有没有办法只获得国家和ID,甚至没有“下载”SecondWrap?

2 个答案:

答案 0 :(得分:1)

唯一的方法是定义一个只返回这些值的新方法。

您无法告诉该服务只为您提供部分答案。

答案 1 :(得分:0)

与您的问题相关,您可以使用ARO工具来显示网络活动和缓存效率低下的工具。在这里查看http://developer.att.com/developer/legalAgreementPage.jsp?passedItemId=9700312