2013-04-12 50 views
7

我有Web服務,它正在返回XML數據。但在數據中,我在開始時收到空字段。實際的數據也可用,但後面跟着空字段。我使用kso​​ap2訪問Android中的web服務。 SoapObject變量具有完整的數據,但也有那些空字段,這有點造成了與該服務一起工作的問題。在這裏你可以看到,在啓動它無關,但後來它開始的數據標籤「標題」.net web服務在數據的開頭返回NULL對象

04-12 10:55:09.405: D/ENVELOPE(1394): GetGuestEventsListingForServiceResponse{GetGuestEventsListingForServiceResult=anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; }; }; }; }; }; }; }; diffgram=anyType{NewDataSet=anyType{Table=anyType{Title=THE CLUSTER DAY-1, JUNKOVATION; Description=anyType{}; EventDate=Apr 12, 2013; EventTime=5:00 PM; Venue=BLOCK 13-306; CreatedBy=16689; CreatedOn=2013-04-11T09:52:07.163+05:30; EventFor=All; Type=Internal; IsActive=true; }; 
+0

能否請您分享您的WSDL格式的請求和響應結合? – Swayam

+0

另外,檢查你的服務器端的''和所有的空數據是''標籤內你可以簡單地將其刪除。 – Swayam

回答

1

我不明白問題出在哪裏。如果格式化字符串結果爲XML,你得到這樣的:如果你的意思是,爲什麼有這些空瓶元素

<GetGuestEventsListingForServiceResponse> 
    <GetGuestEventsListingForServiceResult> 
    <schema> 
     <element> 
      <complexType> 
      <choice> 
       <element> 
       <complexType> 
        <sequence> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        </sequence> 
       </complexType> 
       </element> 
      </choice> 
      </complexType> 
     </element> 
    </schema> 
    <diffgram> 
     <NewDataSet> 
     <Table> 
      <Title>THE CLUSTER DAY-1, JUNKOVATION</Title> 
      <Description/> 
      <EventDate>Apr 12, 2013</EventDate> 
      <EventTime>5:00 PM</EventTime> 
      <Venue>BLOCK 13-306</Venue> 
      <CreatedBy>16689</CreatedBy> 
      <CreatedOn>2013-04-11T09:52:07.163+05:30</CreatedOn> 
      <EventFor>All</EventFor> 
      <Type>Internal</Type> 
      <IsActive>true</IsActive> 
     </Table> 
     </NewDataSet> 
    </diffgram> 
    </GetGuestEventsListingForServiceResult> 
</GetGuestEventsListingForServiceResponse> 

,你要在服務器端檢查Web服務。如果您正在使用服務器端的「.NET」 Web服務接口,嘗試設置爲BasicBinding

+1

我沒有直接訪問Web服務,並尋找優化的解決方案來處理它在客戶端,我已經實現了它通過使用一些Java Api像拆分,替換和所有。但似乎不是很好的解決方案。 –

+0

如果你不能在服務器端修改代碼,你唯一能做的就是忽略無用的響應節點,並考慮你必須處理的事情。在這種特定情況下,忽略節點是否稱爲「模式」,如果節點是「NewDataSet」,則忽略。順便說一下,如果我沒記錯,當綁定沒有設置爲BasicBinding時,會發生這種響應 – kinghomer