2013-04-12 31 views
7

Tôi có dịch vụ web đang trả về dữ liệu XML. nhưng trong dữ liệu tôi nhận được các trường Null ở đầu nó. Dữ liệu thực tế cũng có sẵn nhưng theo sau là các trường Null. Tôi đang truy cập webservice trong Android bằng cách sử dụng ksoap2. Biến SoapObject có đầy đủ dữ liệu nhưng cũng có những trường rỗng, đó là kinda tạo ra vấn đề để làm việc với dịch vụ này. ở đây bạn có thể thấy, khi bắt đầu nó không có gì, nhưng sau đó nó có dữ liệu bắt đầu bằng Thẻ "Tiêu đề". Dịch vụ web net trả về các đối tượng NULL ở đầu dữ liệu

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

Bạn có thể chia sẻ các định dạng WSDL của mình cho yêu cầu và phản hồi không? – Swayam

+0

Ngoài ra, hãy kiểm tra phía máy chủ của bạn cho '' và bạn có thể chỉ cần xóa nó vì tất cả dữ liệu trống nằm bên trong thẻ ''. – Swayam

Trả lời

1

Tôi không hiểu đâu là vấn đề. Nếu bạn định dạng chuỗi kết quả là xml, bạn có được điều này:

<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> 

Nếu bạn có nghĩa là tại sao có những phần tử trống, bạn phải kiểm tra dịch vụ web ở phía máy chủ. Nếu bạn đang giao tiếp với dịch vụ web ".NET" ở phía máy chủ, hãy thử đặt ràng buộc là BasicBinding

+1

Tôi không có quyền truy cập vào các dịch vụ web trực tiếp và tìm kiếm giải pháp tối ưu để xử lý nó ở phía máy khách, tôi đã thực hiện bằng cách nào đó bằng cách sử dụng một số Java Api như chia nhỏ, thay thế và tất cả. Nhưng dường như không phải là giải pháp tốt. –

+0

Nếu bạn không thể sửa đổi mã ở phía máy chủ, điều duy nhất bạn có thể làm là bỏ qua các nút phản hồi vô ích và chỉ xem xét những gì bạn phải xử lý. Trong trường hợp cụ thể này, bỏ qua nếu nút được gọi là "lược đồ" và xử lý nếu nút là "NewDataSet". Nhân tiện, nếu tôi nhớ rõ, phản ứng này xảy ra khi ràng buộc không được thiết lập là BasicBinding – kinghomer

Các vấn đề liên quan