7

我正在使用 KSoap2 为我的 Android 应用程序调用 Web 服务。我正在使用以下代码来调用网络服务。

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("PageSize", 20);
request.addProperty("PageIndex", currentPage);

SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
HttpTransportSE aht = new HttpTransportSE(URL);

try {
  aht.call(SOAP_ACTION, soapEnvelope);
  SoapObject result = (SoapObject) soapEnvelope.getResponse();

  Log.d("resBundle", String.valueOf(resBundle)); 

  int elementCount = resSoap.getPropertyCount();
  for(int i = 0;i<elementCount;i++){
    /////////////////////how to get the property name here////////////////
  }

}catch (Exception e) {
  e.printStackTrace();
  return null;
}

我得到了来自网络服务的完美响应。的String.valueOf响应如下:

anyType{NewsID=2186; NewsSubject=Lil Wayne Shows Up to Heat Game With Mystery Chick & Drake; NewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl yet again, this time at the Miami Heat Eastern Conference Finals game. Wanye looked proud to be with his girl while he kept his arm around her for most of the game. Drake was also in attendance with Wanye and it looks like he was having a great time cheering on the Heat as they beat the Bulls in overtime. Chad Ochocinco was also spotted enjoying the game, but Evelyn was no where to be seen. Check out more pics from the Miami game:; NewsArtist=494; ModifiedDate=2011-05-26T12:03:04.567+01:00; CreateDate=26 May, 2011 12:03PM; ImageName=26052011120304.jpg; ImageAlt=anyType{}; ShortNewsDetail=Looks like Weezy found him a main chick! Lil Wayne showed off his mystery girl y; }

现在,我可以轻松获取属性的值,但我也想获取名称属性(例如 NewsID、NewsSubject、NewsArtist、ModifiedDate)。我如何获得物业的名称?

4

2 回答 2

15

在您循环通过您的响应的地方,您可以从不同的属性访问 PropertyInfo。我使用以下设置来获取参数的名称和与它们一起使用的值:

//Inside your for loop
PropertyInfo pi = new PropertyInfo();
resSoap.getPropertyInfo(i, pi);
Log.d(TAG, pi.name + " : " + resSoap.getProperty(i).toString());

This creates a PropertyInfo object, adds the information from the property in that object and then gives you access to all this information. And then prints it to your LogCat in the format off "propertyname : propertyvalue"

于 2011-08-02T07:44:10.917 回答
0

//Inside your for loop

SoapObject dataObject ; // your SoapObject

PropertyInfo property = new PropertyInfo();

dataObject.getPropertyInfo(i, property);

// this should give you the property name

String name= property.getName();

//happy coding

于 2018-07-18T15:11:16.630 回答