android - KSoap2 Android 接收对象数组

标签 android arrays web-services android-ksoap2

我正在尝试在我的应用程序中使用 .NET 网络服务,该服务返回一个对象数组作为响应。

这是网络服务响应的格式。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetPickersResponse xmlns="http://tempuri.org/">
  <GetPickersResult>
    <Picker>
      <Id>int</Id>
      <StartTime>dateTime</StartTime>
      <EndTime>dateTime</EndTime>
      <PickerCount>int</PickerCount>
    </Picker>
    <Picker>
      <Id>int</Id>
      <StartTime>dateTime</StartTime>
      <EndTime>dateTime</EndTime>
      <PickerCount>int</PickerCount>
    </Picker>
  </GetPickersResult>
</GetPickersResponse>
</soap:Body>
</soap:Envelope>

这是我从网络服务获取响应的 Java 代码。

SoapObject request = new SoapObject(NAMESPACE, METHOD_GET_CONTROL);
SoapSerializationEnvelope envelope = 
        new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);


HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

 try {
             androidHttpTransport.call(SOAP_ACTION_GET_CONTROL, envelope);
            ..........=envelope.getResponse(); //To get the data. }

我的问题是,我应该用什么替换源代码中的“.......”来接收对象数组作为服务的响应? 我需要接收多个对象,然后使用它们各自的数据成员。

请帮忙。我是 Web 服务和 Ksoap 的新手。

最佳答案

要获得多重响应,只需在代码中添加几行而不是 .......=envelope.getResponse();

SoapObject obj1 = (SoapObject) envelope.getResponse();

SoapObject obj2 =(SoapObject) obj1.getProperty(0);


for(int i=0; i<obj2.getPropertyCount(); i++)
{
   SoapObject obj3 =(SoapObject) obj2.getProperty(i);
   int id= Integer.parseInt(obj3.getProperty(0).toString());
   String start_date = obj3.getProperty(1).toString();
   String end_date = obj3.getProperty(2).toString();
   int id= Integer.parseInt(obj3.getProperty(3).toString());
}

如果您还有任何问题,可以写信给我。

关于android - KSoap2 Android 接收对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029205/

相关文章:

arrays - 数组类型的 VHDL 赋值

无法读取数字字符频率

android - 是否可以从 android 调用 WSHTTPBINDING?

java - 如何在java中为wit.ai音频发送post http请求

php - 定期向 Ratchet 中的客户端发送消息

android - 设置 edittext 启用/禁用

php - 按数组变量中值的降序显示结果

android - 单击 TableRow 时将焦点设置到子 EditText

android - 与谷歌地图上的兴趣点互动

java - 相同的代码在不同的 Activity 中不起作用