读取从.net webservice检索的数据

时间:2012-07-11 14:44:49

标签: android eclipse

我有一个返回数据表的Web服务函数。如果我执行该webservice,我会得到这样的结果。

<DataTable xmlns="http://tempuri.org/">
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="FTP" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="FTP">
<xs:complexType>
<xs:sequence>
<xs:element name="Host" type="xs:string" minOccurs="0"/>
<xs:element name="UserName" type="xs:string" minOccurs="0"/>
<xs:element name="password" type="xs:string" minOccurs="0"/>
<xs:element name="port" type="xs:short" minOccurs="0"/>
<xs:element name="FolderPath" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<DocumentElement xmlns="">
<FTP diffgr:id="FTP1" msdata:rowOrder="0">
<Host>192.168.1.10</Host>
<UserName>hiren</UserName>
<password>soni</password>
<port>21</port>
<FolderPath>Images/</FolderPath>
</FTP>
<FTP diffgr:id="FTP2" msdata:rowOrder="1">
<Host>192.168.10.10</Host>
<UserName>hiren1</UserName>
<password>soni1</password>
<port>9021</port>
<FolderPath>Images/</FolderPath>
</FTP>
</DocumentElement>
</diffgr:diffgram>
</DataTable>

我在我的android应用程序中使用SOAP来执行这个webservice。下面是我的日食代码。

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);

        HttpTransportSE HttpTransport = new HttpTransportSE(SOAP_ADDRESS);
        Object response = null;

        try {
            HttpTransport.call(SOAP_ACTION, envelope);
            response = envelope.getResponse();
        } catch (IOException e) {
            response = e.toString();
        } catch (XmlPullParserException e) {
            response = e.toString();
        }

        return response.toString();
    }

现在我不知道如何阅读我收到的这些数据。

顺便提一下,当我返回response.toString()时,它会给我这样的结果:

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{}; }; }; }; }; }; }; }; diffgram=anyType{DocumentElement=anyType{FTP=anyType{Host=192.168.1.10; UserName=hiren; password=soni; port=21; FolderPath=Images/; }; FTP=anyType{Host=192.168.10.10; UserName=hiren1; password=soni1; port=9021; FolderPath=Images/; }; }; }; }

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,以下几行解决了这个问题。请尝试以下几行,希望这将为您提供带有XML标记的数据,

httpTransport.debug=true; 
httpTransport.call(SOAP_ACTION, envelope);
String ss=httpTransport.responseDump; 
Log.d("Result --- ", ss);

这将打印Web服务返回的完整xml文件。